ÄÄÆÛ³ÍÆ® ÀÛ¼ºÀÇ ¼ø¼­¿¡ ´ëÇØ

ÄÄÆÛ³ÍÆ®¸¦ ±¸ÇöÇÏ´Â °æ¿ì, ÄÄÆÛ³ÍÆ®ÀÇ ¸Þ¼ÒµåÀÇ ÀçÁ¤ÀÇ(override), »õ·Î¿î properties ÀÇ Á¤ÀÇ, »õ·Î¿î À̺¥Æ®ÀÇ ¼ÛÃâ(Dispatch), ¾îÇø®ÄÉÀ̼ǿ¡ ÇÊ¿äÇÑ ´Ù¾çÇÑ Ä¿½ºÅ͸¶ÀÌÁîµîÀ» ½Ç½ÃÇÕ´Ï´Ù.

ÄÄÆÛ³ÍÆ®¸¦ ±¸ÇöÇÏ´Â ÀϹÝÀûÀÎ ¼ø¼­´Â, ´ÙÀ½°ú °°½À´Ï´Ù.

  1. Çʿ信 µû¶ó¼­, ÄÄÆÛ³ÍÆ®ÀÇ ½ºÅ²À» ÀÛ¼ºÇÕ´Ï´Ù.
  2. ActionScript class ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.
    1. UIComponent µîÀÇ ±âº» Ŭ·¡½º³ª, ´Ù¸¥ ÄÄÆÛ³ÍÆ® Ŭ·¡½º¸¦ È®ÀåÇÕ´Ï´Ù.
    2. MXML ÅÂ±× properties ·Î À¯Àú°¡ ¼³Á¤ÇÒ ¼ö ÀÖ´Â properties ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,ActionScript ¿¡ ÀÇÇÑ °£´ÜÇÑ ºñÁÖ¾ó ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼ºÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
    3. ±×·¡ÇÈÀ̳ª ½ºÅ²ÀÇ ÆÄÀÏÀ» Æ÷ÇÔÇÕ´Ï´Ù. »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,ActionScript ¿¡ ÀÇÇÑ °£´ÜÇÑ ºñÁÖ¾ó ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼ºÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
    4. constructor¡¡ ¡¡ À» ±¸ÇöÇÕ´Ï´Ù.
    5. UIComponent.createChildren() ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù.
    6. UIComponent.commitProperties() ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù.
    7. UIComponent.measure() ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù.
    8. UIComponent.layoutChrome() ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù.
    9. UIComponent.updateDisplayList() ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù.
    10. properties , ¸Þ¼Òµå, ½ºÅ¸ÀÏ, À̺¥Æ®, metadata¸¦ Ãß°¡ÇÕ´Ï´Ù.
  3. ÄÄÆÛ³ÍÆ®¸¦ ActionScript ÆÄÀÏÀ̳ª SWC ÆÄÀϷμ­ deploy ÇÕ´Ï´Ù.

»õ·Î¿î ÄÄÆÛ³ÍÆ®¸¦ Á¤ÀÇÇϴµ¥, ¸ðµç ÄÄÆÛ³ÍÆ® ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇ(override) ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÄÄÆÛ³ÍÆ®ÀÇ ±â´ÉÀ» ±¸ÇöÇϴµ¥ ÇÊ¿äÇÑ ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇ(override) ÇÏ´Â °Í¸¸À¸·Î ±¦Âú½À´Ï´Ù. Button ÄÁÆ®·ÑÀ̳ª VBox ÄÁÅ×ÀÌ³Ê µî, ±âÁ¸ÀÇ ÄÄÆÛ³ÍÆ®ÀÇ ¼­ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ´Â °æ¿ì´Â, »õ·Î¿î ±â´ÉÀ» ÄÄÆÛ³ÍÆ®¿¡ Ãß°¡Çϴµ¥ ÇÊ¿äÇÑ ¸Þ¼Òµå¸¦ ±¸ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

¿¹¸¦ µé¾î, µðÆúÆ®ÀÇ Å©±â¸¦ Á¤ÀÇÇÏ´Â »õ·Î¿î ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇÑ custom Button ÄÁÆ®·ÑÀ» ±¸ÇöÇÑ´Ù°í ÇÕ´Ï´Ù. ÀÌ °æ¿ì,measure() ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇ(override) ÇÏ´Â °Í¸¸À¸·Î ±¦Âú½À´Ï´Ù. ¿¹¿¡ ´ëÇØ¼­´Â,measure() ¸Þ¼ÒµåÀÇ ±¸ÇöÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

´Ù¸¥ ¿¹·Î¼­ VBox ÄÁÅ×À̳ÊÀÇ »õ·Î¿î ¼­ºê Ŭ·¡½º¸¦ ±¸ÇöÇÏ´Â °æ¿ì¸¦ »ý°¢ÇØ º¸°Ú½À´Ï´Ù. »õ·Î¿î ¼­ºê Ŭ·¡½º´Â, VBox Ŭ·¡½ºÀÇ ±âÁ¸ÀÇ Å©±â º¯°æ ³í¸®ÀÇ ¸ðµç °ÍÀ» »ç¿ëÇÏ´Â ÇÑÆí, Ŭ·¡½ºÀÇ ·¹À̾ƿô ³í¸®¸¦ º¯°æÇØ, ÄÁÅ×ÀÌ³Ê (À§¿¡¼­ ¹ØÀ¸·Î´Â ¾Æ´Ï°Ô) ¾Æ·¡¿¡¼­ À§¿¡, ÄÁÅ×À̳ÊÀÇ ¾ÆÀ̸¦ ·¹À̾ƿô ÇÑ´Ù°í ÇÕ´Ï´Ù. ÀÌ °æ¿ì,updateDisplayList() ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇ(override) ÇÏ´Â °Í¸¸À¸·Î ±¦Âú½À´Ï´Ù. ¿¹¿¡ ´ëÇØ¼­´Â,updateDisplayList() ¸Þ¼ÒµåÀÇ ±¸ÇöÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.