ActionScript ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º

ActionScript Ŭ·¡½º¸¦ Á¤ÀÇÇÏ´Â °ÍÀ¸·Î, ActionScript ÄÄÆÛ³ÍÆ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ActionScript ¸¦ »ç¿ëÇϸé, ¾Æ·¡ ŸÀÔÀÇ ÄÄÆÛ³ÍÆ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

À¯Àú ÀÎÅÍÆäÀ̽º (ºñÁÖ¾ó) ÄÄÆÛ³ÍÆ® À¯Àú ÀÎÅÍÆäÀ̽º ÄÄÆÛ³ÍÆ®´Â, ó¸® ³í¸®¿Í ºñÁÖ¾ó ¿¤¸®¸ÕÆ®ÀÇ ¾çÂÊ ¸ðµÎ¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. custom À¯Àú ÀÎÅÍÆäÀ̽º ÄÄÆÛ³ÍÆ®¸¦ ÀÛ¼ºÇÏ¿©¼­ ±âÁ¸ÀÇ µ¿ÀÛÀ» º¯°æÇϰųª »õ·Î¿î ±â´ÉÀ» ÄÄÆÛ³ÍÆ®¿¡ Ãß°¡ÇÕ´Ï´Ù. º¸Åë ÀÌ·¯ÇÑ ÄÄÆÛ³ÍÆ®´Â Flex ÄÄÆÛ³ÍÆ® °èÃþÀ» È®ÀåÇÕ´Ï´Ù. UIComponent Ŭ·¡½º³ª Button ,ComboBox ,DataGrid µîÀÇ ÀÓÀÇÀÇ Flex ÄÄÆÛ³ÍÆ®¸¦ È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ActionScript ÀÇ custom ÄÄÆÛ³ÍÆ®´Â, Super Ŭ·¡½ºÀÇ ¸Þ¼Òµå, ¼Ó¼º(properties) , À̺¥Æ®, ½ºÅ¸ÀÏ, ¹× Effect¸¦ ¸ðµÎ »ó¼Ó¹Þ½À´Ï´Ù.

ºñÁÖ¾óÇÏÁö ¾ÊÀº ÄÄÆÛ³ÍÆ® ºñÁÖ¾óÇÏÁö ¾ÊÀº ÄÄÆÛ³ÍÆ®´Â ºñÁÖ¾ó ¿¤¸®¸ÕÆ®¸¦ Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù. Flex ¿¡´Â Formatter, Validator , Effect µîÀÇ À¯Àú°¡ ÀÛ¼º °¡´ÉÇÑ ¸î °³ÀÇ Å¸ÀÔÀÇ ºñÁÖ¾óÇÏÁö ¾ÊÀº ÄÄÆÛ³ÍÆ®°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÄÄÆÛ³ÍÆ®¸¦ ÀÛ¼ºÇÏ·Á¸é Flex ÄÄÆÛ³ÍÆ® °èÃþÀ¸·ÎºÎÅÍ ¼­ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇÕ´Ï´Ù. Validator ÀÇ °æ¿ì´Â Validator Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½º, FormatterÀÇ °æ¿ì´Â Formatter Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½º, EffectÀÇ °æ¿ì´Â Effect Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¿¹¿¡ ³ªÅ¸³»µíÀÌ, Flex Button Ŭ·¡½º¿¡ ±Ù°ÅÇØ custom Button ÄÄÆÛ³ÍÆ®¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

package myComponents
{

    import mx.controls.Button;

    public class MyButton extends Button {
    
        // constructor¡¡ ¡¡ À» Á¤ÀÇÇÑ´Ù 
        public function MyButton() {
            // Super Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ À» È£ÃâÇÑ´Ù 
            super();
            // label  properties ¸¦ "Submit" ·Î ¼³Á¤ÇÑ´Ù
            label="Submit";
        }
    }
}

ÀÌ ¿¹¿¡¼­´Â, MyButton Ŭ·¡½º¸¦ "MyButton.as" ÆÄÀÏ¿¡ ÀÛ¼ºÇÕ´Ï´Ù.

ActionScript ÆÐŰÁö³»¿¡¼­ custom ÄÄÆÛ³ÍÆ®¸¦ Á¤ÀÇÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÆÐŰÁö¿¡´Â ¾îÇø®ÄÉÀ̼ÇÀÇ µð·ºÅ丮 ±¸Á¶¿¡ À־ÀÇ ÄÄÆÛ³ÍÆ®ÀÇ µð·ºÅ丮ÀÇ Àå¼Ò°¡ ³ªÅ¸³³´Ï´Ù. º¸Åë custom ActionScript ÄÄÆÛ³ÍÆ®ÀÇ °æ·Î´Â ActionScript ÀÇ classpath¿¡ Æ÷ÇԵǾî ÀÖ´Â µð·ºÅ丮, ¾îÇø®ÄÉÀ̼ÇÀÇ ÇÏÀ§ µð·ºÅ丮 ¶Ç´Â Flex Data Services ÀÇ °æ¿ì´Â WEB-INF/flex/user_classes µð·ºÅ丮³»°¡ µË´Ï´Ù. ÀÌ ¿¹¿¡¼­ÀÇ package Ç¥±â´Â Flex ¾îÇø®ÄÉÀÌ¼Ç "myComponents" ÇÏÀ§ µð·ºÅ丮³»¿¡ ÀÖ´Â "MyButton.as" ÆÄÀÏÀ» ÁöÁ¤ÇÕ´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¿¡ ³ªÅ¸³»µíÀÌ, custom ÄÄÆÛ³ÍÆ®¸¦ ÂüÁ¶ÇÏ´Â MXML ÆÄÀÏ¿¡¼­´Â MXML ÆÄÀϳ»¿¡¼­ namespace¸¦ Á¤ÀÇÇØ ÂüÁ¶ÇÕ´Ï´Ù.

<? xml version="1. 0"? >
<! -- myApplication.mxml -->

<! -- custom ÄÄÆÛ³ÍÆ®ÀÇ namespace Á¤ÀǸ¦ include  ÇÑ´Ù -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
        xmlns:MyComp="myComponents. *">

    <! -- ÆÄÀϸíÀ» MXML ű׸íÀ¸·Î¼­ »ç¿ëÇÑ´Ù -->
    <MyComp:MyButton/>

</mx:Application>

ÀÌ ¿¹¿¡¼­´Â, ¾îÇø®ÄÉÀ̼ÇÀÇ µð·ºÅ丮 ±¸Á¶³»ÀÇ custom ÄÄÆÛ³ÍÆ®ÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â MyComp namespace¸¦ ÃÖÃÊ·Î Á¤ÀÇÇÕ´Ï´Ù. ´ÙÀ½¿¡ namespaceÀÇ Á¢µÎ»ç¸¦ »ç¿ëÇÏ¿© ÄÄÆÛ³ÍÆ®¸¦ MXML ű׷μ­ ÂüÁ¶ÇÕ´Ï´Ù.

»ó¼¼ÇÑ °Í¿¡ ´ëÇØ¼­´Â, ActionScript ¿¡ ÀÇÇÑ °£´ÜÇÑ ºñÁÖ¾ó ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼ºÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.