| ActionScript 3.0 ÀÇ ÇÁ·Î±×·¡¹Ö > ActionScript ÇÁ·Î±×·¡¹ÖÀÇ °³¿ä > Ç¥½ÃÀÇ ÇÁ·Î±×·¡¹Ö > Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ Á¶ÀÛ | |||
Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ Á¶ÀÛ
½ºÅ×ÀÌÁö, Ç¥½Ã ¿ÀºêÁ§Æ®, Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳Ê, ¹× Ç¥½Ã ¸®½ºÆ®ÀÇ ±âº» °³³äÀ» ÀÌÇØÇÒ ¼ö ÀÖ¾úÀ¸¹Ç·Î, ÀÌ ¼½¼Ç¿¡¼´Â, ActionScript 3.0 ¿¡¼ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ Á¶ÀÛ¿¡ ´ëÇØ ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÕ´Ï´Ù.
ºÎ ÁÖÁ¦
DisplayObject Ŭ·¡½ºÀÇ properties ¿Í ¸Þ¼Òµå
Ç¥½Ã ¿ÀºêÁ§Æ®´Â ¸ðµÎ DisplayObject Ŭ·¡½ºÀÇ ¼ºê Ŭ·¡½ºÀÔ´Ï´Ù. µû¶ó¼, Ç¥½Ã ¿ÀºêÁ§Æ®´Â DisplayObject Ŭ·¡½ºÀÇ properties ¹× ¸Þ¼Òµå¸¦ »ó¼Ó¹Þ½À´Ï´Ù. »ó¼Ó ¹ÞÀº properties ´Â, ¸ðµç Ç¥½Ã ¿ÀºêÁ§Æ®¿¡ Àû¿ëµÇ´Â ±âº» properties ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, Ç¥½Ã ¿ÀºêÁ§Æ®¿¡´Â, Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʳ»ÀÇ ¿ÀºêÁ§Æ®ÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â x properties ¿Í y properties °¡ ÀÖ½À´Ï´Ù.
DisplayObject Ŭ·¡½º¿¡´Â constructor¡¡ ¡¡ ÇÔ¼ö´Â ¾ø½À´Ï´Ù. Sprite µîÀÇ ´Ù¸¥ ŸÀÔÀÇ ¿ÀºêÁ§Æ® (DisplayObject ÇüÀÇ ¼ºê Ŭ·¡½ºÀÎ ¿ÀºêÁ§Æ®)¸¦ ÀÛ¼ºÇØ,new constructor¡¡ ¡¡ À¸·Î ¿ÀºêÁ§Æ®¸¦ ÀνºÅϽºÈÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¶Ç, custom Ç¥½Ã ¿ÀºêÁ§Æ® Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ´Â °æ¿ì´Â, ¿¹¸¦ µé¾î, Shape Ŭ·¡½º³ª Sprite class µî, »ç¿ë °¡´ÉÇÑ constructor¡¡ ¡¡ ÇÔ¼ö¸¦ °¡Áö´Â ¸î°³ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ® ¼ºê Ŭ·¡½ºÀÇ ¼ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
Ç¥½Ã ¸®½ºÆ®¿¡ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ Ãß°¡
Ç¥½Ã ¿ÀºêÁ§Æ®¸¦ ÀνºÅϽºÈÇϸé, Ç¥½Ã ¸®½ºÆ®»ó¿¡ Àִ ǥ½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʿ¡ Ç¥½Ã ¿ÀºêÁ§Æ® ÀνºÅϽº¸¦ Ãß°¡ÇÒ ¶§±îÁö, Ç¥½Ã ¿ÀºêÁ§Æ®´Â ȸé»ó (½ºÅ×ÀÌÁö»ó)¿¡ Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ Äڵ忡¼´Â, ÄÚµåÀÇ ¸¶Áö¸· ÇàÀ» »ý·« Çϸé myText TextField ¿ÀºêÁ§Æ®´Â Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù. ÄÚµåÀÇ ¸¶Áö¸· ÇàÀ¸·Î,this Ű¿öµå´Â, ÀÌ¹Ì Ç¥½Ã ¸®½ºÆ®¿¡ Ãß°¡µÇ°í Àִ ǥ½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʸ¦ ÂüÁ¶ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
import flash.display. *; import flash.text.TextField; var myText:TextField = new TextField(); myText.text = "Buenas dias. "; this.addChild(myText);
½ºÅ×ÀÌÁö¿¡ ºñÁÖ¾ó ¿¤¸®¸ÕÆ®¸¦ Ãß°¡Çϸé, ÀÌ ¿¤¸®¸ÕÆ®´Â Stage ¿ÀºêÁ§Æ®ÀÇ "¾ÆÀÌ " °¡ µË´Ï´Ù. ¾îÇø®ÄÉÀ̼dz»¿¡ ·Îµå µÈ ÃÖÃÊÀÇ SWF ÆÄÀÏ (HTML ÆäÀÌÁö¿¡ Æ÷ÇÔÇÏ´Â SWF ÆÄÀϵî)Àº, ÀÚµ¿ÀûÀ¸·Î Stage ¿ÀºêÁ§Æ®ÀÇ ¾ÆÀ̷μ Ãß°¡µË´Ï´Ù. À̰ÍÀº, Sprite Ŭ·¡½º¸¦ È®ÀåÇÏ´Â ÇüÅÂÀÇ ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù.
Adobe Flex Builder 2 ·Î MXML ű׸¦ Ãß°¡Çϰųª Flash ·Î ¹¦È ÅøÀ» »ç¿ëÇϰųª ÇÏ´Â µî, ActionScript ¸¦ »ç¿ëÇÏÁö ¾Ê°í ÀÛ¼ºµÈ Ç¥½Ã ¿ÀºêÁ§Æ®´Â, Ç¥½Ã ¸®½ºÆ®¿¡ Ãß°¡µË´Ï´Ù. ÀÌ·¯ÇÑ Ç¥½Ã ¿ÀºêÁ§Æ®´Â ActionScript ¸¦ »ç¿ëÇØ Ãß°¡µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù¸¸, ActionScript ·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ÄÚµå´Â, ActionScript ´Â ¾Æ´Ï°í authoring tool·Î Ãß°¡µÈ button1 ¶ó°í ÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ÆøÀ» Á¶Á¤ÇÕ´Ï´Ù.
button1.width = 200;
Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ÊÀÇ Á¶ÀÛ
DisplayObjectContainer ¿ÀºêÁ§Æ®°¡ Ç¥½Ã ¸®½ºÆ®·ÎºÎÅÍ »èÁ¦µÇ¾úÀ» °æ¿ì, ¶Ç´Â ±× ¿ÜÀÇ ¹æ¹ýÀ¸·Î À̵¿µÇ¾ú´ÂÁö º¯ÇüµÇ¾úÀ» °æ¿ì, DisplayObjectContainer ³»ÀÇ °¢ Ç¥½Ã ¿ÀºêÁ§Æ®µµ »èÁ¦, À̵¿, ¶Ç´Â º¯ÇüµË´Ï´Ù.
Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʴ ÀÏÁ¾ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ®·Î, ´Ù¸¥ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʿ¡ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ±×¸²Àº, ¾Æ¿ìÆ®¶óÀÎ ¼ÎÀÌÇÁ 1 °³°ú (PictureFrame ÇüÀÇ) Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×ÀÌ³Ê 4 °³À» Æ÷ÇÔÇÑ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×ÀÌ³Ê pictureScreen ¸¦ ³ªÅ¸³À´Ï´Ù.
Ç¥½Ã ¸®½ºÆ®¿¡ Ç¥½Ã ¿ÀºêÁ§Æ®¸¦ Ç¥½ÃÇÏ·Á¸é , Ç¥½Ã ¸®½ºÆ®»ó¿¡ Àִ ǥ½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʿ¡ Ç¥½Ã ¿ÀºêÁ§Æ®¸¦ Ãß°¡ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. À̰Ϳ¡´Â, ÄÁÅ×ÀÌ³Ê ¿ÀºêÁ§Æ®ÀÇ addChild() ¸Þ¼Òµå ¶Ç´Â addChildAt() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ÄÚµåÀÇ ¸¶Áö¸· ÇàÀÌ ¾øÀ¸¸é,myTextField ¿ÀºêÁ§Æ®´Â Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.
var myTextField:TextField = new TextField(); myTextField.text = "hello"; this.root.addChild(myTextField);
ÀÌ »ùÇà Äڵ忡¼´Â,this.root ¿¡ ÀÌ Äڵ带 Æ÷ÇÔÇÑ MovieClip Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʸ¦ ÁöÁ¤ÇÕ´Ï´Ù. ½ÇÁ¦ÀÇ Äڵ忡¼´Â, ´Ù¸¥ ÄÁÅ×À̳ʸ¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ÊÀÇ ÀÚ½Ä (child) ¸®½ºÆ®³»ÀÇ Æ¯Á¤ÀÇ À§Ä¡¿¡ ¾ÆÀ̸¦ Ãß°¡ÇÏ·Á¸é ,addChildAt() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÚ½Ä (child) ¸®½ºÆ®³»ÀÇ 0 À¸·ÎºÎÅÍ ½ÃÀ۵Ǵ À妽º À§Ä¡´Â, Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ layer (ÀüºÎÅÍ µÚ¿¡ÀÇ ¼ø¼)¿¡ ´ëÀÀÇϰí ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº 3 °³ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ®°¡ ÀÖ´Ù°í ÇÕ´Ï´Ù. °¢ ¿ÀºêÁ§Æ®´Â, Ball ·Î ºÒ¸®´Â custom Ŭ·¡½º·ÎºÎÅÍ ÀÛ¼ºµÇ¾ú½À´Ï´Ù.
ÄÁÅ×À̳ʳ»ÀÇ ÀÌ·¯ÇÑ Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ layer´Â,addChildAt() ¸Þ¼Òµå¸¦ »ç¿ëÇØ Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº Äڵ尡 ÀÖ´Ù°í ÇÕ´Ï´Ù.
ball_A = new Ball(0xFFCC00, "a"); ball_A.name = "ball_A"; ball_A.x = 20; ball_A.y = 20; container.addChild(ball_A); ball_B = new Ball(0xFFCC00, "b"); ball_B.name = "ball_B"; ball_B.x = 70; ball_B.y = 20; container.addChild(ball_B); ball_C = new Ball(0xFFCC00, "c"); ball_C.name = "ball_C"; ball_C.x = 40; ball_C.y = 60; container.addChildAt(ball_C, 1);
ÀÌ Äڵ带 ½ÇÇàÇÑ ÈÄ, Ç¥½Ã ¿ÀºêÁ§Æ®´Â ´ÙÀ½°ú °°ÀÌ container DisplayObjectContainer ¿ÀºêÁ§Æ®³»¿¡ ¹èÄ¡µË´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ layer¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.
Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ layerÀÇ ¼ø¼¸¦ È®ÀÎÇÏ·Á¸é ,getChildAt() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. getChildAt() ¸Þ¼Òµå´Â, ¸Þ¼Òµå¿¡ °Ç³×ÁÖ´Â À妽º ¹øÈ£¿¡ ±Ù°ÅÇØ ÄÁÅ×À̳ÊÀÇ ÀÚ½Ä (child) ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ÄÚµå´Â,container DisplayObjectContainer ¿ÀºêÁ§Æ®ÀÇ ÀÚ½Ä (child) ¸®½ºÆ®³»°¡ ´Ù¸¥ À§Ä¡¿¡ Àִ ǥ½Ã ¿ÀºêÁ§Æ®ÀÇ À̸§À» Ç¥½ÃÇÕ´Ï´Ù.
trace(container.getChildAt(0). name); // ball_A trace(container.getChildAt(1). name); // ball_C trace(container.getChildAt(2). name); // ball_B
ºÎ¸ð ÄÁÅ×À̳ÊÀÇ ÀÚ½Ä (child) ¸®½ºÆ®·ÎºÎÅÍ Ç¥½Ã ¿ÀºêÁ§Æ®¸¦ »èÁ¦Çϸé, ¸®½ºÆ®»ó¿¡¼ ±×°Íº¸´Ù »óÀ§¿¡ ÀÖ´Â ¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä (child) À妽º³»ÀÇ À§Ä¡°¡ °¢°¢ ³»¸³´Ï´Ù. ¿¹¸¦ µé¾î, °è¼ÓÀüÀÇ Äڵ带 »ç¿ëÇϸé, ´ÙÀ½ÀÇ ÄÚµå´Â, ÀÚ½Ä (child) ¸®½ºÆ®³»ÀÇ ÇÏÀ§¿¡ Àִ ǥ½Ã ¿ÀºêÁ§Æ®°¡ »èÁ¦µÇ¾úÀ» °æ¿ì,container DisplayObjectContainer ³»ÀÇ À§Ä¡ 2 ¿¡ ÀÖ´ø Ç¥½Ã ¿ÀºêÁ§Æ®°¡ À§Ä¡ 1 À¸·Î À̵¿ÇÏ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù.
container.removeChild(ball_C);trace(container.getChildAt(0). name); // ball_Atrace(container.getChildAt(1). name); // ball_B
removeChild() ¹× removeChildAt() ¸Þ¼Òµå´Â, Ç¥½Ã ¿ÀºêÁ§Æ® ÀνºÅϽº¸¦ ¿ÏÀüÇÏ°Ô »èÁ¦ÇÏÁö ¾Ê½À´Ï´Ù. ÄÁÅ×À̳ÊÀÇ ÀÚ½Ä (child) ¸®½ºÆ®·ÎºÎÅÍ »èÁ¦ÇÒ »ÓÀÔ´Ï´Ù. ÀνºÅϽº´Â, ´Ù¸¥ º¯¼ö·Î ÂüÁ¶ÇÒ ¼ö ÀÖ´Â ¿ÀºêÁ§Æ®¸¦ ¿ÏÀüÇÏ°Ô »èÁ¦ÇÏ·Á¸é ,delete ¿¬»êÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù.
Ç¥½Ã ¿ÀºêÁ§Æ®¿¡´Â ºÎ¸ð ÄÁÅ×À̳ʰ¡ 1 °³¸¸ ÀÖÀ¸¹Ç·Î, ±× 1 °³¸¸ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʿ¡ Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ÄÚµå´Â, Ç¥½Ã ¿ÀºêÁ§Æ® tf1 °¡ 1 °³¸¸ÀÇ ÄÁÅ×ÀÌ³Ê (ÀÌ ¿¹¿¡¼´Â, DisplayObjectContainer Ŭ·¡½º¸¦ È®ÀåÇÏ´Â Sprite) ³»¿¡ ÀÖ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù.
tf1:TextField = new TextField(); tf2:TextField = new TextField(); tf1.name = "text 1"; tf2.name = "text 2"; container1:Sprite = new Sprite(); container2:Sprite = new Sprite(); container1.addChild(tf1); container1.addChild(tf2); container2.addChild(tf1); trace(container1.numChildren); // 1 trace(container1.getChildAt(0). name); // ÅØ½ºÆ® 2 trace(container2.numChildren); // 1 trace(container2.getChildAt(0). name); // ÅØ½ºÆ® 1
Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʳ»¿¡ Æ÷ÇԵǴ ǥ½Ã ¿ÀºêÁ§Æ®¸¦ ´Ù¸¥ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʿ¡ Ãß°¡Çϸé, Ç¥½Ã ¿ÀºêÁ§Æ®´Â ÃÖÃÊÀÇ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ÊÀÇ ÀÚ½Ä (child) ¸®½ºÆ®·ÎºÎÅÍ »èÁ¦µË´Ï´Ù.
Ç¥½Ã ¸®½ºÆ®¿Ü¿¡ Àִ ǥ½Ã ¿ÀºêÁ§Æ®, Áï Stage ¿ÀºêÁ§Æ®ÀÇ ¾ÆÀÌÀΠǥ½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʳ»¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº Ç¥½Ã ¿ÀºêÁ§Æ®´Â, "¸®½ºÆ®¿Ü " Ç¥½Ã ¿ÀºêÁ§Æ®¶ó°í ÇÕ´Ï´Ù.
Ç¥½Ã ¸®½ºÆ®³»ÀÇ À̵¿
ÀÌ¹Ì º» °Íó·³, Ç¥½Ã ¸®½ºÆ®´Â Æ®¸® ±¸Á¶ÀÔ´Ï´Ù. Æ®¸®ÀÇ ¸Ç À§¿¡´Â, º¹¼öÀÇ Ç¥½Ã ¿ÀºêÁ§Æ®¸¦ Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ´Â ½ºÅ×ÀÌÁö°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Ç¥½Ã ¿ÀºêÁ§Æ®´Â, ±× ÀÚü°¡ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ÊÀ̸ç, ´Ù¸¥ Ç¥½Ã ¿ÀºêÁ§Æ®, Áï Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʸ¦ Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
DisplayObjectContainer Ŭ·¡½º¿¡´Â, Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ÊÀÇ ÀÚ½Ä (child) ¸®½ºÆ®¸¦ »ç¿ëÇØ Ç¥½Ã ¸®½ºÆ®³»¸¦ À̵¿Çϱâ À§ÇÑ properties ¿Í ¸Þ¼Òµå°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº Äڵ尡 ÀÖ´Ù°í ÇÕ´Ï´Ù. ÀÌ ÄÚµå´Â, 2 °³ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ® title ¿Í pict ¸¦ container ¿ÀºêÁ§Æ® (Sprite, Sprite Ŭ·¡½º´Â DisplayObjectContainer Ŭ·¡½º¸¦ È®ÀåÇÕ´Ï´Ù)¿¡ Ãß°¡ÇÕ´Ï´Ù.
var container:Sprite = new Sprite();
var title:TextField = new TextField();
title.text = "Hello";
var pict:Loader = new Loader();
var url:URLRequest = new URLRequest("banana.jpg");
pict.load(url);
pict.name = "banana loader";
container.addChild(title);
container.addChild(pict);
getChildAt() ¸Þ¼Òµå´Â, ƯÁ¤ÀÇ À妽º À§Ä¡¿¡ Àִ ǥ½Ã ¸®½ºÆ®ÀÇ ¾ÆÀ̸¦ µ¹·ÁÁÝ´Ï´Ù.
trace(container.getChildAt(0) is TextField); // true
¾ÆÀÌ ¿ÀºêÁ§Æ®¿¡ À̸§À¸·Î ¾×¼¼½º ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Ç¥½Ã ¿ÀºêÁ§Æ®¿¡´Â name properties °¡ ÀÖ½À´Ï´Ù. name properties ¸¦ ÇÒ´çÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, Flash Player ¿¡¼´Â "instance1" µîÀÇ µðÆúƮġ¸¦ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ÄÚµå´Â,getChildByName() ¸Þ¼Òµå¸¦ »ç¿ëÇØ "banana loader" ¶ó´Â À̸§À¸·Î ÀÚ½Ä (child) Ç¥½Ã ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º ÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù.
trace(container.getChildByName("banana loader") is Loader); // true
getChildByName() ¸Þ¼Òµå¸¦ »ç¿ëÇϸé,getChildAt() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °Íº¸´Ù ÆÛÆ÷¸Õ½º°¡ ÀúÇÏÇÕ´Ï´Ù.
Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʿ¡´Â Ç¥½Ã ¸®½ºÆ®ÀÇ ÀÚ½Ä (child) ¿ÀºêÁ§Æ®·Î¼ ´Ù¸¥ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʸ¦ Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ±â (À§ÇØ)¶§¹®¿¡, Æ®¸®¿Í °°ÀÌ ¾îÇø®ÄÉÀ̼ÇÀÇ Ç¥½Ã ¸®½ºÆ®³»¸¦ À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Àü¼úÀÇ ÄÚµåÀÇ ¹ßÃé¿¡¼´Â,pict Loader ¿ÀºêÁ§Æ®ÀÇ ·Îµå Á¶ÀÛÀÌ ¿Ï·áÇϸé,pict ¿ÀºêÁ§Æ®¿¡ ºñÆ® ¸ÊÀÎ ÀÚ½Ä (child) Ç¥½Ã ¿ÀºêÁ§Æ®°¡ ·Îµå µË´Ï´Ù. ÀÌ ºñÆ® ¸Ê Ç¥½Ã ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º Çϱâ À§Çؼ,pict.getChildAt(0) ¸¦ ±â¼úÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¶Ç,container.getChildAt(0) == pict À̱â (À§ÇØ)¶§¹®¿¡,container.getChildAt(0). getChildAt(0) ¸¦ ±â¼úÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
´ÙÀ½ÀÇ ÇÔ¼ö´Â, Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʷκÎÅÍ Ç¥½Ã ¸®½ºÆ®ÀÇ Àε§Æ® µÈ trace() ¸¦ Ãâ·ÂÇÕ´Ï´Ù.
function traceDisplayList(container:DisplayObjectContainer,
indentString:String = "") :void {var child:DisplayObject;for (var i:uint=0; i < container.numChildren; i++) {child = container.getChildAt(i);trace (indentString, child, child.name);if (container.getChildAt(i) is DisplayObjectContainer) {traceDisplayList(DisplayObjectContainer(child), indentString + " ")}}
}
Flex ¸¦ »ç¿ëÇϰí ÀÖ´Â °æ¿ì, Flex ´Â ¸¹Àº ÄÄÆÛ³ÍÆ® Ç¥½Ã ¿ÀºêÁ§Æ® Ŭ·¡½º¸¦ Á¤ÀÇÇØ, ÀÌ·¯ÇÑ Å¬·¡½º´Â DisplayObjectContainer Ŭ·¡½ºÀÇ Ç¥½Ã ¸®½ºÆ®¾ÆÅ©¼¼½º¸Þ¼Úµå¸¦ ÀçÁ¤ÀÇ(override) ÇÏ´Â °ÍÀ» ¾Ë¾Æ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, mx.core ÆÐŰÁöÀÇ Container Ŭ·¡½º´Â, (Container Ŭ·¡½º¿¡ ÀÇÇØ È®ÀåµÈ´Ù) DisplayObjectContainer Ŭ·¡½ºÀÇ addChild() ¸Þ¼Òµå ¹× ±× ¿ÜÀÇ ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇ(override) ÇÕ´Ï´Ù. addChild() ¸Þ¼ÒµåÀÇ °æ¿ì, Container Ŭ·¡½º´Â, Flex ·Î Container ÀνºÅϽº¿¡ ¸ðµç ŸÀÔÀÇ Ç¥½Ã ¿ÀºêÁ§Æ®¸¦ Ãß°¡ÇÒ ¼ö ¾ø°Ô, ÀÌ ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇ(override) ÇÕ´Ï´Ù. ÀÌ °æ¿ì, ÀçÁ¤ÀÇ(override) µÈ ¸Þ¼Òµå¿¡¼´Â, Ãß°¡ÇÏ´Â ÀÚ½Ä (child) ¿ÀºêÁ§Æ®°¡ mx.core.UIComponent ¿ÀºêÁ§Æ®ÀÇ ÀÏÁ¾ÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù.
Stage properties ÀÇ ¼³Á¤
Stage Ŭ·¡½º´Â, DisplayObject Ŭ·¡½ºÀÇ ´ëºÎºÐÀÇ properties ¿Í ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇ(override) ÇÕ´Ï´Ù. ÀçÁ¤ÀÇ(override) µÈ properties ¶Ç´Â ¸Þ¼ÒµåÀÇ ¾î´ÀÂÊÀ̵çÀ» È£ÃâÇßÀ» °æ¿ì, Flash Player ´Â ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Stage ¿ÀºêÁ§Æ®´Â, ¾îÇø®ÄÉÀ̼ÇÀÇ ¸ÞÀÎ ÄÁÅ×À̳ʷμ À§Ä¡°¡ °íÁ¤µÇ°í ÀÖ±â (À§ÇØ)¶§¹®¿¡,x properties ³ª y properties ¸¦ °¡ÁöÁö ¾Ê½À´Ï´Ù. x properties ¹× y properties ´Â, ÄÁÅ×À̳ʸ¦ ±âÁØÀ¸·Î¼ Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ À§Ä¡¸¦ ÂüÁ¶ÇÕ´Ï´Ù. Stage ¿ÀºêÁ§Æ®´Â ´Ù¸¥ Ç¥½Ã ¿ÀºêÁ§Æ® ÄÁÅ×À̳ʿ¡ Æ÷ÇÔµÇÁö ¾Ê±â ¶§¹®¿¡, ÀÌ 2 °³ÀÇ properties ´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.
|
¸Þ¸ð |
|
Stage Ŭ·¡½ºÀÇ ÀϺÎÀÇ properties ¹× ¸Þ¼Òµå´Â, ÃÖÃÊ·Î ·Îµå µÈ SWF ÆÄÀϰú °°Àº º¸¾È »÷µå ¹Ú½º³»¿¡ ¾ø´Â ¿ÀºêÁ§Æ®¸¦ Ç¥½ÃÇϱâ À§Çؼ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,½ºÅ×ÀÌÁöÀÇ º¸¾È¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. |
Stage Ŭ·¡½ºÀÇ framerate properties ´Â, ¾îÇø®ÄÉÀ̼ǿ¡ ·Îµå µÈ ¸ðµç SWF ÆÄÀÏÀÇ frame rate¸¦ ¼³Á¤Çϱâ À§Çؼ »ç¿ëÇÕ´Ï´Ù. »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â, ¡¸Flex 2 ·¹ÆÛ·±½º °¡À̵塹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
Ç¥½Ã ¿ÀºêÁ§Æ®ÀÇ À̺¥Æ® ó¸®
DisplayObject Ŭ·¡½º´Â EventDispatcher Ŭ·¡½º¸¦ »ó¼Ó¹Þ½À´Ï´Ù. Áï, ¾î´À Ç¥½Ã ¿ÀºêÁ§Æ®¿¡¼µµ À̺¥Æ® ¸ðµ¨¿¡ Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù (À̺¥Æ®ÀÇ Ã³¸® ÂüÁ¶). Ç¥½Ã ¿ÀºêÁ§Æ®´Â, EventDispatcher Ŭ·¡½º·ÎºÎÅÍ »ó¼Ó ¹ÞÀº µ¶ÀÚÀûÀÎ addEventListener() ¸Þ¼Òµå¸¦ »ç¿ëÇØ, ƯÁ¤ÀÇ À̺¥Æ®¸¦ ¹ÞÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. ´Ù¸¸, À̰ÍÀº, Listener ¿ÀºêÁ§Æ®°¡ ±× À̺¥Æ®ÀÇ À̺¥Æ® Ç÷οì(flow)ÀÇ ÀϺÎÀÎ °æ¿ì¸¸ÀÔ´Ï´Ù.
Flash Player ¿¡ ÀÇÇØ À̺¥Æ® ¿ÀºêÁ§Æ®°¡ ¼ÛÃâ(Dispatch)µÇ¸é, ±× À̺¥Æ® ¿ÀºêÁ§Æ®´Â ½ºÅ×ÀÌÁö·ÎºÎÅÍ À̺¥Æ®°¡ ¹ß»ýÇÑ Ç¥½Ã ¿ÀºêÁ§Æ®·Î ¿Õº¹ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, À¯Àú°¡ child1 ¶ó´Â À̸§ÀÇ Ç¥½Ã ¿ÀºêÁ§Æ®¸¦ Ŭ¸¯Çϸé, Flash Player ¿¡ ÀÇÇØ, ½ºÅ×ÀÌÁö·ÎºÎÅÍ Ç¥½Ã ¸®½ºÆ® °èÃþÀ» ³»·Á child1 Ç¥½Ã ¿ÀºêÁ§Æ®±îÁö À̺¥Æ® ¿ÀºêÁ§Æ®°¡ ¼ÛÃâ(Dispatch)µË´Ï´Ù.
´ÙÀ½ÀÇ ±×¸²¿¡ ³ªÅ¸³ª°í ÀÖµµ·Ï(µíÀÌ), °³³ä»ó À̺¥Æ® Ç÷οì(flow)´Â 3 ´Ü°è·Î ³ª´ ¼ö ÀÖ½À´Ï´Ù.
»ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,À̺¥Æ®ÀÇ Ã³¸®¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
