ÄÄÆÛ³ÍÆ®ÀÇ ÀνºÅϽºÈ­ ¶óÀÌÇÁ »çÀÌŬ¿¡ ´ëÇØ

ÄÄÆÛ³ÍÆ® ÀνºÅϽºÈ­ ¶óÀÌÇÁ »çÀÌŬÀº, ÄÄÆÛ³ÍÆ® Ŭ·¡½º·ÎºÎÅÍ ÄÄÆÛ³ÍÆ® ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÒ °æ¿ì¿¡ »ý±â´Â ÀÏ·ÃÀÇ ¼ø¼­¸¦ ±â¼úÇÑ °ÍÀÔ´Ï´Ù. Flex ´Â, ÀÌ ¶óÀÌÇÁ »çÀÌŬÀÇ ÀÏȯÀ¸·Î¼­ ÄÄÆÛ³ÍÆ® ¸Þ¼ÒµåÀÇ È£ÃâÇØ, À̺¥Æ®ÀÇ ¼ÛÃâ(Dispatch), ¹× ÄÄÆÛ³ÍÆ®ÀÇ °¡½ÃÈ­¸¦ ÀÚµ¿ÀûÀ¸·Î ½Ç½ÃÇÕ´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¿¡¼­´Â, ActionScript ·Î Button ÄÁÆ®·ÑÀÌ ÀÛ¼ºµÇ¾î ÄÁÅ×À̳ʿ¡ Ãß°¡µË´Ï´Ù.

// Box ÄÁÅ×À̳ʸ¦ ÀÛ¼ºÇÑ´Ù
var boxContainer:Box = new Box();
// Box ÄÁÅ×À̳ʸ¦ ¼³Á¤ÇÑ´Ù 

// Button ÄÁÆ®·ÑÀ» ÀÛ¼ºÇÑ´Ù 
var b:Button = new Button()
// Button ÄÁÆ®·ÑÀ» ¼³Á¤ÇÑ´Ù
b.label = "Submit";
...
// Button ÄÁÆ®·ÑÀ» Box ÄÁÅ×À̳ʿ¡ Ãß°¡ÇÑ´Ù
boxContainer.addChild(b);

´ÙÀ½ÀÇ ¼ø¼­´Â, ÀÌ Äڵ带 ½ÇÇàÇØ Button ÄÁÆ®·ÑÀ» ÀÛ¼ºÇØ, ±×°ÍÀ» Box ÄÁÅ×À̳ʿ¡ Ãß°¡ÇßÀ» ¶§¿¡ ¹«¾ùÀ» ÇÏ´ÂÁö¸¦ ³ªÅ¸³½ °ÍÀÔ´Ï´Ù.

  1. ´ÙÀ½ÀÇ Äڵ忡 ³ªÅ¸³»µµ·Ï(µíÀÌ), ÄÄÆÛ³ÍÆ®ÀÇ constructor¡¡ ¡¡ À» È£ÃâÇÕ´Ï´Ù.
    // Button ÄÁÆ®·ÑÀ» ÀÛ¼ºÇÑ´Ù 
    var b:Button = new Button()
    
  2. ´ÙÀ½ÀÇ Äڵ忡 ³ªÅ¸³»µµ·Ï(µíÀÌ), ÄÄÆÛ³ÍÆ®ÀÇ properties ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
    // Button ÄÁÆ®·ÑÀ» ¼³Á¤ÇÑ´Ù
    b.label = "Submit";
    

    ÄÄÆÛ³ÍÆ®ÀÇ setter ¸Þ¼Òµå´Â,invalidateProperties(),invalidateSize(),invalidateDisplayList() ÀÇ ¸î°³ÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

  3. ´ÙÀ½ÀÇ Äڵ忡 ³ªÅ¸³»µµ·Ï(µíÀÌ),addChild() ¸Þ¼Òµå¸¦ È£ÃâÇØ ÄÄÆÛ³ÍÆ®¸¦ ±× ºÎ¸ð¿¡°Ô Ãß°¡ÇÕ´Ï´Ù.
    // Button ÄÁÆ®·ÑÀ» Box ÄÁÅ×À̳ʿ¡ Ãß°¡ÇÑ´Ù
    boxContainer.addChild(b);
    

    Flex ¿¡ ÀÇÇØ ´ÙÀ½ÀÇ Ã³¸®¸¦ ÇÕ´Ï´Ù.

    1. ÄÄÆÛ³ÍÆ®ÀÇ parent properties °¡ ±× ºÎ¸ð ÄÁÅ×À̳ʸ¦ ÂüÁ¶Çϵµ·Ï(µíÀÌ) ¼³Á¤ÇÕ´Ï´Ù.
    2. ÄÄÆÛ³ÍÆ®ÀÇ ½ºÅ¸ÀÏ ¼³Á¤À» °è»êÇÕ´Ï´Ù.
    3. ÄÄÆÛ³ÍÆ®ÀÇ preinitialize À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù.
    4. ÄÄÆÛ³ÍÆ®ÀÇ createChildren() ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
    5. invalidateProperties(),invalidateSize(),invalidateDisplayList() ÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇØ, ´ÙÀ½¹øÀÇ render À̺¥Æ®ÀÇ ±â°£¿¡ ½ÇÇàÇÏ´Â commitProperties(),measure(),updateDisplayList() ÀÇ ¸î°³ÀÇ ¸Þ¼ÒµåÀÇ È£ÃâÀ» trigger ÇÕ´Ï´Ù.

      À¯ÀÏÇÑ ¿¹¿Ü´Â, À¯Àú°¡ ÄÄÆÛ³ÍÆ®ÀÇ ³ôÀÌ¿Í ÆøÀ» ¼³Á¤ÇÏ´Â °æ¿ì·Î, Flex ´Â measure() ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¾Ê½À´Ï´Ù.

    6. ÄÄÆÛ³ÍÆ®ÀÇ initialize À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù. ÀÌ ½ÃÁ¡¿¡¼­, ÄÄÆÛ³ÍÆ®ÀÇ ¸ðµç ¾ÆÀÌ´Â ÃʱâÈ­µË´Ï´Ù¸¸, ÄÄÆÛ³ÍÆ®ÀÇ Å©±â º¯°æ°ú ·¹À̾ƿô 󸮴 ½ÇÇàµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. ÀÌ À̺¥Æ®¸¦ »ç¿ëÇϸé, ÄÄÆÛ³ÍÆ®ÀÇ Ãß°¡ 󸮸¦ ·¹À̾ƿôÀü¿¡ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
    7. ºÎ¸ð ÄÁÅ×À̳ÊÀÇ childAdd À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù.
    8. ºÎ¸ð ÄÁÅ×À̳ÊÀÇ initialize À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù.
  4. ´ÙÀ½¹øÀÇ render À̺¥Æ®ÀÇ ±â°£¿¡, Flex ´Â, ´ÙÀ½ÀÇ ¾×¼ÇÀ» ½ÇÇàÇÕ´Ï´Ù.
    1. ÄÄÆÛ³ÍÆ®ÀÇ commitProperties() ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
    2. ÄÄÆÛ³ÍÆ®ÀÇ measure() ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
    3. ÄÄÆÛ³ÍÆ®ÀÇ layoutChrome() ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
    4. ÄÄÆÛ³ÍÆ®ÀÇ updateDisplayList() ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
    5. ÄÄÆÛ³ÍÆ®ÀÇ updateComplete À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù.
  5. commitProperties(),measure(),updateDisplayList() ÀÇ ¸î°³ÀÇ ¸Þ¼Òµå°¡ invalidateProperties(),invalidateSize(),invalidateDisplayList() ÀÇ ¸î°³ÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °æ¿ì, Flex ´Â Ãß°¡ÀÇ render À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù.
  6. ¸¶Áö¸· render À̺¥Æ®ÀÇ µÚ¿¡, Flex ´Â, ´ÙÀ½ÀÇ ¾×¼ÇÀ» ½ÇÇàÇÕ´Ï´Ù.
    1. visible properties ¸¦ true ·Î ¼³Á¤ÇÏ´Â °ÍÀ¸·Î, ÄÄÆÛ³ÍÆ®¸¦ °¡½ÃÈ­ÇÕ´Ï´Ù.
    2. ÄÄÆÛ³ÍÆ®ÀÇ creationComplete À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù. ·¹À̾ƿô¿¡ °üÇÑ ÄÄÆÛ³ÍÆ®ÀÇ Å©±â º¯°æ°ú 󸮸¦ ÇÕ´Ï´Ù. ÀÌ À̺¥Æ®´Â, ÄÄÆÛ³ÍÆ®°¡ ÀÛ¼ºµÉ ¶§ ¹Û¿¡ ¼ÛÃâ(Dispatch)µÇÁö ¾Ê½À´Ï´Ù.
    3. ÄÄÆÛ³ÍÆ®ÀÇ updateComplete À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù. Flex ´Â, ÄÄÆÛ³ÍÆ®ÀÇ ·¹À̾ƿô, À§Ä¡, Å©±âµîÀÇ ½Ã°¢Àû Ư¡ÀÌ º¯°æµÇ¾î ÄÄÆÛ³ÍÆ®ÀÇ Ç¥½Ã°¡ °»½ÅµÉ ¶§¸¶´Ù, Ãß°¡ÀÇ updateComplete À̺¥Æ®¸¦ ¼ÛÃâ(Dispatch)ÇÕ´Ï´Ù.

ÄÄÆÛ³ÍÆ®ÀÇ ¼³Á¤ ÀÛ¾÷ÀÇ ´ëºÎºÐÀº,addChild() ¸Þ¼Òµå¸¦ »ç¿ëÇØ ÄÄÆÛ³ÍÆ®¸¦ ÄÁÅ×À̳ʿ¡ Ãß°¡ÇÒ °æ¿ì¿¡ ¹ß»ýÇÕ´Ï´Ù. ÀÌ ÀÌÀ¯´Â, ÄÄÆÛ³ÍÆ®¸¦ ÄÁÅ×À̳ʿ¡ Ãß°¡ÇÒ ¶§±îÁö, Flex ´Â Å©±âÀÇ °áÁ¤, »ó¼Ó ½ºÅ¸ÀÏÀÇ properties ÀÇ ¼³Á¤, È­¸é»ó¿¡¼­ÀÇ ¹¦È­¸¦ ÇÒ ¼ö ¾ø±â ¶§¹®ÀÔ´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, ¾îÇø®ÄÉÀ̼ÇÀ» MXML ·Î Á¤ÀÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Box>
        <mx:Button label="Submit"/>
    </mx:Box>
</mx:Application>

ÄÄÆÛ³ÍÆ®¸¦ MXML ·Î ÀÛ¼ºÇÒ °æ¿ì¿¡ Flex °¡ ½ÇÇàÇÏ´Â ÀÏ·ÃÀÇ ¼ø¼­´Â, ActionScript ·Î ¼³¸íÇÑ ¼ø¼­¿Í °°½À´Ï´Ù.

ÄÄÆÛ³ÍÆ®¸¦ ÄÁÅ×À̳ʷκÎÅÍ »èÁ¦ÇÏ·Á¸é ,removeChild() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÄÄÆÛ³ÍÆ®¿¡ ´ëÇÑ ÂüÁ¶°¡ ¾ø´Â °æ¿ì´Â, ÃÖÁ¾ÀûÀ¸·Î, Adobe ÀÇ Macromedia Flash Player 9 ÀÇ °¡º£Áö ÄÝ·º¼Ç ¸ÞÄ«´ÏÁò¿¡ ÀÇÇØ ¸Þ¸ð¸®·ÎºÎÅÍ »èÁ¦µË´Ï´Ù.