È®ÀåµÈ Å×Å©´Ð

ÀÌ ¼½¼Ç¿¡¼­´Â, ÃÖÃÊ·Î ActionScript ¿Í OOP ÀÇ ¿ª»ç¿¡ ´ëÇØ °£´ÜÇÏ°Ô ¼³¸íÇÕ´Ï´Ù. ´ÙÀ½¿¡, ActionScript 3.0 ¿ÀºêÁ§Æ® ¸ðµ¨, ¹× °Å±â¿¡ µû¶ó »õ·Î¿î ActionScript °¡»ó ¸Ó½Å (AVM2)À» ³°Àº ActionScript °¡»ó ¸Ó½Å (AVM1)À» »ç¿ëÇÏ´Â ±¸¹öÁ¯ÀÇ Flash Player ¿¡ ´ëÇØ¼­ Å«ÆøÀ¸·Î °í¼ÓÀ¸·Î ½ÇÇà °¡´ÉÇÏ°Ô ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ÇØ¼³ÇÕ´Ï´Ù.

ºÎ ÁÖÁ¦

ActionScript ÀÇ OOP Áö¿ø(support)ÀÇ ¿ª»ç
ActionScript 3.0 ÀÇ class ¿ÀºêÁ§Æ®
Ư¼º ¿ÀºêÁ§Æ®
prototype ¿ÀºêÁ§Æ®
AS3 namespace

ActionScript ÀÇ OOP Áö¿ø(support)ÀÇ ¿ª»ç

ActionScript 3.0 Àº ±¸¹öÁ¯ÀÇ ActionScript ¸¦ º£À̽º·Î ±¸ÃàµÇ°í ÀÖ±â (À§ÇØ)¶§¹®¿¡, ActionScript ¿ÀºêÁ§Æ® ¸ðµ¨ÀÌ ¾î¶»°Ô ÁøÈ­ÇØ ¿Ô´ÂÁö¸¦ ÀÌÇØÇØ µÎ¸é µµ¿òÀÌ µË´Ï´Ù. ActionScript ´Â, Flash authoring toolÀÇ Ãʱ⠹öÁ¯¿ëÀÇ ´Ü¼øÇÑ ½ºÅ©¸³Æ® ¸ÞÄ«´ÏÁòÀ¸·Î¼­ ž½À´Ï´Ù. ±× ÈÄ, ÇÁ·Î±×·¡¸Ó´Â ActionScript ¸¦ »ç¿ëÇØº¸´Ù º¹ÀâÇÑ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇϱ⠽ÃÀÛÇß½À´Ï´Ù. ÇÁ·Î±×·¡¸ÓÀÇ ¿ä±¸¿¡ ÀÀÇϱâ À§Çؼ­(¶§¹®¿¡), ±× ÈÄÀÇ °¢ ¸±¸®½º¿¡´Â º¹ÀâÇÑ ¾îÇø®ÄÉÀ̼ÇÀÇ ÀÛ¼ºÀ» ¿ëÀÌÇÏ°Ô ÇÏ´Â ¾ð¾î ±â´ÉÀÌ Ãß°¡µÇ¾î ¿Ô½À´Ï´Ù.

ActionScript 1.0

ActionScript 1.0 Àº, Flash Player 6 ÀÌÀü¿¡ »ç¿ëµÇ°í ÀÖ´ø ¾ð¾îÀÇ ¹öÁ¯ÀÔ´Ï´Ù. ÀÌ °³¹ß Ãʱ⠴ܰ迡¼­µµ, ActionScript ¿ÀºêÁ§Æ® ¸ðµ¨Àº ±âº»ÀûÀÎ µ¥ÀÌÅÍÇüÀ¸·Î¼­ÀÇ ¿ÀºêÁ§Æ®ÀÇ °³³äÀ» º£À̽º·Î Çϰí ÀÖ¾ú½À´Ï´Ù. ActionScript ¿ÀºêÁ§Æ®´Â, properties ÀÇ ±×·ìÀ» °¡Áö´Â º¹ÇÕ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. ¿ÀºêÁ§Æ® ¸ðµ¨¿¡ ´ëÇØ ¼³¸íÇÒ ¶§, " properties "¶ó°í ÇÏ´Â ¿ë¾î¿¡´Â, º¯¼ö, ÇÔ¼ö, ¸Þ¼Òµå µî, ¿ÀºêÁ§Æ®¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ´Â ¸ðµç °ÍÀÌ Æ÷ÇԵ˴ϴÙ.

Á¦ 1 ¼¼´ëÀÇ ActionScript ¿¡¼­´Â class Ű¿öµå¿¡ ÀÇÇÑ Å¬·¡½ºÀÇ Á¤ÀÇ´Â Áö¿ø(support)µË´Ï´Ù¸¸, prototype ¿ÀºêÁ§Æ®·Î ºÒ¸®´Â Ư¼öÇÑ Á¾·ùÀÇ ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇØ Ŭ·¡½º¸¦ Á¤ÀÇÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. class Ű¿öµå¸¦ »ç¿ëÇØ ±¸»ó ¿ÀºêÁ§Æ®¿¡ ÀνºÅϽºÈ­ÇÏ´Â Ãß»ó Ŭ·¡½ºÀÇ Á¤ÀǸ¦ ÀÛ¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, Java ³ª C++ µîÀÇ class º£À̽º ¾ð¾îÀÇ °æ¿ì¿Í °°°Ô, ActionScript 1.0 °ú °°Àº prototype º£À̽º ¾ð¾î¿¡¼­´Â, ±âÁ¸ ¿ÀºêÁ§Æ®¸¦ ´Ù¸¥ ¿ÀºêÁ§Æ®ÀÇ ¸ðµ¨ (¶Ç´Â prototype)·Î¼­ »ç¿ëÇÕ´Ï´Ù. class º£À̽º ¾ð¾îÀÇ ¿ÀºêÁ§Æ®´Â ÅÛÇø´ÀÌ µÇ´Â Ŭ·¡½º¸¦ ³ªÅ¸³»´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù¸¸, prototype º£À̽º ¾ð¾îÀÇ ¿ÀºêÁ§Æ®´Â ÅÛÇø´ÀÌ µÇ´Â ´Ù¸¥ ¿ÀºêÁ§Æ®, Áï prototype¸¦ ³ªÅ¸³À´Ï´Ù.

ActionScript 1.0 À¸·Î Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ·Á¸é , Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ ÇÔ¼ö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ActionScript ÀÇ ÇÔ¼ö´Â, ´ÜÁö Ãß»óÀûÀÎ Á¤ÀÇ´Â ¾Æ´Ï°í ½ÇÁ¦ÀÇ ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. ÀÛ¼ºÇÑ constructor¡¡ ¡¡ ÇÔ¼ö´Â, ±× Ŭ·¡½ºÀÇ ÀνºÅϽºÀÇ prototypeÀûÀÎ ¿ÀºêÁ§Æ®°¡ µË´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â, Shape ¶ó°í Çϴ Ŭ·¡½º¸¦ ÀÛ¼ºÇØ, µðÆúÆ®·Î true ·Î ¼³Á¤µÇ´Â visible ¶ó°í ÇÏ´Â properties ¸¦ 1 °³ Á¤ÀÇÇÕ´Ï´Ù.

// ±âº» Ŭ·¡½º
function Shape() {
}
// visible ¶ó°í ÇÏ´Â  properties ¸¦ ÀÛ¼ºÇÑ´Ù
Shape.prototype.visible = true;

ÀÌ constructor¡¡ ¡¡ ÇÔ¼ö´Â, ´ÙÀ½°ú °°ÀÌ new ¿¬»êÀÚ·Î ÀνºÅϽºÈ­ÇÒ ¼ö ÀÖ´Â Shape Ŭ·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù.

myShape = new Shape();

Shape constructor¡¡ ¡¡ ÇÔ¼ö ¿ÀºêÁ§Æ®°¡ Shape Ŭ·¡½ºÀÇ ÀνºÅϽºÀÇ prototype°¡ µÇµµ·Ï(µíÀÌ), À̰ÍÀº Shape ÀÇ ¼­ºê Ŭ·¡½ºÀÇ prototype, Áï Shape Ŭ·¡½º¸¦ È®ÀåÇÏ´Â ±× ¿ÜÀÇ Å¬·¡½º·Îµµ µË´Ï´Ù.

Shape Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½ºÀΠŬ·¡½º¸¦ ÀÛ¼ºÇÏ·Á¸é , ´ÙÀ½ÀÇ 2 °³ÀÇ ¼ø¼­¸¦ ½ÇÇàÇÕ´Ï´Ù. ÃÖÃÊ·Î, ´ÙÀ½°ú °°ÀÌ Å¬·¡½ºÀÇ constructor¡¡ ¡¡ ÇÔ¼ö¸¦ Á¤ÀÇÇØ, Ŭ·¡½º¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

// ÀÚ½Ä (child) Ŭ·¡½º
function Circle(id, radius) {
    this.id = id;
    this.radius = radius;
}

´ÙÀ½¿¡,new ¿¬»êÀÚ¸¦ »ç¿ëÇØ, Shape Ŭ·¡½º°¡ Circle Ŭ·¡½ºÀÇ prototypeÀÌ´Ù°í ¼±¾ðÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â, ÀÛ¼ºÇÑ Å¬·¡½º´Â ±× prototype·Î¼­ Object Ŭ·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù. Áï,Circle.prototype ¿¡´Â ÇöÀç ¹ü¿ë ¿ÀºêÁ§Æ® (Object Ŭ·¡½ºÀÇ ÀνºÅϽº)°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. Circle ÀÇ prototype¿¡ Object ´Â ¾Æ´Ï°í Shape ¸¦ ÁöÁ¤ÇÏ·Á¸é , ¹ü¿ë ¿ÀºêÁ§Æ®´Â ¾Æ´Ï°í Shape ¿ÀºêÁ§Æ®°¡ Æ÷ÇԵǵµ·Ï(µíÀÌ), ´ÙÀ½ÀÇ Äڵ带 »ç¿ëÇØ Circle.prototype ÀÇ °ªÀ» º¯°æÇÕ´Ï´Ù.

// Circle ¸¦ Shape ÀÇ ¼­ºê Ŭ·¡½º·Î ÇÑ´Ù
Circle.prototype = new Shape();

À̰ÍÀ¸·Î, Shape Ŭ·¡½º¿Í Circle Ŭ·¡½º´Â prototype üÀÎÀ¸·Î ºÒ¸®´Â »ó¼Ó °ü°è³»¿¡¼­ ¸µÅ© µÇ¾ú½À´Ï´Ù. ´ÙÀ½ÀÇ ±×¸²Àº, prototype üÀγ»ÀÇ °ü°è¸¦ ³ªÅ¸³À´Ï´Ù.



°¢ prototype üÀÎÀÇ ¸¶Áö¸·¿¡ ÀÖ´Â ±âº» Ŭ·¡½º´Â Object Ŭ·¡½ºÀÔ´Ï´Ù. Object Ŭ·¡½º¿¡´Â, ActionScript 1.0 À¸·Î ÀÛ¼ºµÈ ¸ðµç ¿ÀºêÁ§Æ®ÀÇ ±âº» prototype ¿ÀºêÁ§Æ®¸¦ °¡¸®Å°´Â Object.prototype ¶ó°í ÇÏ´Â Á¤Àû properties °¡ Æ÷ÇԵ˴ϴÙ. ÀÌ prototype üÀÎÀÇ ´ÙÀ½ÀÇ ¿ÀºêÁ§Æ®´Â Shape ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. À̰ÍÀº,Shape.prototype properties ´Â ¸í½ÃÀûÀ¸·Î ¼³Á¤µÇ¾î ÀÖÁö ¾Ê±â ¶§¹®¿¡, ¿©ÀüÈ÷ ¹ü¿ë ¿ÀºêÁ§Æ® (Object Ŭ·¡½ºÀÇ ÀνºÅϽº)¸¦ º¸°ü À¯ÁöÇϰí Àֱ⠶§¹®ÀÔ´Ï´Ù. prototype üÀÎÀÇ ¸¶Áö¸· ¸µÅ©´Â Circle Ŭ·¡½º¿¡¼­, prototypeÀÇ Shape Ŭ·¡½º¿¡ ¸µÅ© µÇ°í ÀÖ½À´Ï´Ù. Circle.prototype properties ´Â Shape ¿ÀºêÁ§Æ®¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, Circle Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇϸé, ÀνºÅϽº´Â Circle Ŭ·¡½ºÀÇ prototype üÀÎÀ» »ó¼Ó¹Þ½À´Ï´Ù.

// Circle Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÑ´Ù
myCircle = new Circle();

Shape Ŭ·¡½ºÀÇ ¸â¹ö·Î¼­ visible ¶ó°í ÇÏ´Â properties ¸¦ ÀÌ¹Ì ÀÛ¼ºÇß½À´Ï´Ù. ¿¹¿¡¼­´Â,visible properties ´Â,myCircle ¿ÀºêÁ§Æ®ÀÇ ÀϺημ­°¡ ¾Æ´Ï°í Shape ¿ÀºêÁ§Æ®ÀÇ ¸â¹ö·Î¼­ÀÇ º¸°í Á¸ÀçÇÕ´Ï´Ù¸¸, ´ÙÀ½ÀÇ ÄÚµåÇà¿¡¼­´Â true °¡ Ãâ·ÂµË´Ï´Ù.

trace(myCircle.visible); // Ãâ·Â : true

Flash Player ¿¡¼­´Â, prototype üÀγ»¸¦ À̵¿ÇÏ´Â °ÍÀ¸·Î½á,myCircle ¿ÀºêÁ§Æ®°¡ visible properties ¸¦ »ó¼Ó ¹Þ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Äڵ带 ½ÇÇàÇϸé, Flash Player ´Â ÃÖÃÊ·Î myCircle ¿ÀºêÁ§Æ®ÀÇ properties ·ÎºÎÅÍ visible ¶ó°í ÇÏ´Â properties ¸¦ °Ë»öÇÕ´Ï´Ù¸¸, ÀÌ properties ´Â ¹ß°ßµÇÁö ¾Ê½À´Ï´Ù. Flash Player ´Â ´ÙÀ½¿¡ Circle.prototype ¿ÀºêÁ§Æ®¸¦ °Ë»öÇÕ´Ï´Ù¸¸,visible ¶ó°í ÇÏ´Â properties ´Â ¹ß°ßµÇÁö ¾Ê½À´Ï´Ù. Flash Player ´Â prototype üÀγ»¸¦ °è¼ÓÇØ °Ë»öÇØ, ¸¶Áö¸·¿¡ Shape.prototype ¿ÀºêÁ§Æ®·Î Á¤ÀÇµÈ visible properties ¸¦ ã¾Æ³» ±× properties ÀÇ °ªÀ» Ãâ·ÂÇÕ´Ï´Ù.

°£°áÇÏ°Ô Çϱâ À§Çؼ­, ÀÌ ¼½¼Ç¿¡¼­´Â prototype üÀÎÀÇ »ó¼¼ ¹× º¹ÀâÇÔ¿¡ °üÇÑ ¼³¸íÀÇ ´ëºÎºÐÀ» »ý·« ÇØ, ´ë½Å¿¡ ActionScript 3.0 ¿ÀºêÁ§Æ® ¸ðµ¨ÀÇ ÀÌÇØ¿¡ µµ¿òÀÌ µÇ´Â Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.

ActionScript 2.0

ActionScript 2.0 ¿¡¼­´Â, Java ³ª C++ µîÀÇ class º£À̽º ¾ð¾îÀÇ °æÇèÀÌ ÀÖÀ¸¸é Ä£¼÷ÇÔÀÌ ÀÖ´Â ¹æ¹ýÀ¸·Î Ŭ·¡½º¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Â class,extends,public, ¹× private µîÀÌ »õ·Î¿î Ű¿öµå°¡ µµÀԵǾú½À´Ï´Ù. ActionScript 1.0 À¸·Î ActionScript 2.0 ¿¡¼­´Â ±âº»À¸·Î µÇ´Â »ó¼Ó ¸ÞÄ«´ÏÁòÀÌ º¯°æµÇ¾î ÀÖÁö ¾ÊÀº °ÍÀ» ÀÌÇØÇØ µÎ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ActionScript 2.0 ¿¡¼­´Â, Ŭ·¡½º¸¦ Á¤ÀÇÇϱâ À§ÇÑ »õ·Î¿î ¹®À屸Á¶¹ýÀÌ Ãß°¡µÇ¾úÀ» »ÓÀÔ´Ï´Ù. prototype üÀÎÀº, ÀÌ 2 °³ÀÇ ¹öÁ¯À¸·Î ¶È°°ÀÌ ±â´ÉÇÕ´Ï´Ù.

´ÙÀ½ÀÇ ¹ßÃé¿¡ ³ªÅ¸³»µµ·Ï(µíÀÌ) ActionScript 2.0 À¸·Î µµÀÔµÈ »õ·Î¿î ¹®À屸Á¶¹ý¿¡¼­´Â, º¸´Ù Á÷°üÀûÀÎ ¹æ¹ýÀ¸·Î Ŭ·¡½º¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

// ±âº» Ŭ·¡½º
class Shape {
    var visible:Boolean = true;
}

ActionScript 2.0 ¿¡¼­´Â, ÄÄÆÄÀϽÃÀÇ ÇüÅ üũ·Î »ç¿ëÇϱâ À§ÇÑ Çü ÁÖ¼®µµ µµÀԵǾú½À´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, Àü¼úÀÇ ¿¹ÀÇ visible properties ¿¡´Â ºÒ¸®¾ð °ª¸¸ÀÌ Æ÷ÇԵǴ °ÍÀ» ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, »õ·Î¿î extends Ű¿öµå¿¡ ÀÇÇØ, ¼­ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ´Â ÇÁ·Î¼¼½º°¡ °£·«È­µË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¿¡¼­´Â, ActionScript 1.0 ¿¡¼­´Â 2 °³ÀÇ ¼ø¼­°¡ ÇÊ¿äÇÑ ÇÁ·Î¼¼½º°¡,extends Ű¿öµå¿¡ ÀÇÇØ 1 °³ÀÇ ¼ø¼­·Î ½ÇÇàµÇ°í ÀÖ½À´Ï´Ù.

// ÀÚ½Ä (child) Ŭ·¡½º
class Circle extends Shape {
    var id:Number;
    var radius:Number;
    function Circle(id, radius) {
        this.id = id;
        this.radius = radius;
    }
}

constructor¡¡ ¡¡ Àº, class Á¤ÀÇÀÇ ÀϺημ­ ¼±¾ðµÇ°í ÀÖ½À´Ï´Ù. class properties id ¿Í radius µµ ¸í½ÃÀûÀ¸·Î ¼±¾ðÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ActionScript 2.0 ¿¡¼­´Â ÀÎÅÍÆäÀ̽º Á¤ÀÇÀÇ Áö¿ø(support)µµ Ãß°¡µÇ¾î ¿ÀºêÁ§Æ®°£ÀÇ Åë½Å¿ëÀ¸·Î Á¤½ÄÀ¸·Î Á¤ÀÇµÈ ÇÁ·ÎÅäÄÝ·Î °´Ã¼ ÁöÇâ ÇÁ·Î±×·¥À» ÇÑÃþ ´õ °³·®ÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.

ActionScript 3.0 ÀÇ class ¿ÀºêÁ§Æ®

Åë»ó Java ³ª C++ ¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ´Â ÀϹÝÀûÀÎ °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ÆÐ·¯´ÙÀÓ(paradigm)¿¡¼­´Â, Ŭ·¡½º¸¦ »ç¿ëÇØ ¿ÀºêÁ§Æ®ÀÇ ÇüŸ¦ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ ÆÐ·¯´ÙÀÓ(paradigm)¸¦ ä¿ëÇÑ ÇÁ·Î±×·¥ ¾ð¾îµµ, Ŭ·¡½º¿¡ ÀÇÇØ Á¤ÀǵǴ µ¥ÀÌÅÍÇüÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇϱâ À§Çؼ­ Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â °æÇâ¿¡ ÀÖ½À´Ï´Ù. ActionScript ¿¡¼­´Â, ÀÌ ¾çÂÊ ¸ðµÎÀÇ ¸ñÀûÀ¸·Î Ŭ·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù¸¸, prototype º£À̽º ¾ð¾îÀÎ °ÍÀ¸·ÎºÎÅÍ Èï¹Ì·Î¿î Ư¡À» µ¡ºÙÀÏ ¼ö ÀÖ°í ÀÖ½À´Ï´Ù. ActionScript ¿¡¼­´Â class Á¤ÀÇ ¸¶´Ù, µ¿ÀÛ°ú »óÅÂÀÇ ¾çÂÊ ¸ðµÎ¸¦ °øÀ¯ÇÒ ¼ö Àִ Ưº°ÇÑ class ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ±×·¸Áö¸¸, ÄÚµù Çϴµ¥ À־ ÀÌ Â÷À̰¡ ½ÇÁúÀûÀÎ ¿µÇâÀÌ ÀÖ´Ù°í ´À³¢´Â ActionScript ÇÁ·Î±×·¡¸Ó´Â °ÅÀÇ ¾øÀ» °ÍÀÔ´Ï´Ù. ActionScript 3.0 Àº, ÀÌ Æ¯º°ÇÑ ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ, ¶Ç ÀÌÇØÇϰí ÀÖÁö ¾Ê¾Æµµ, È®ÀåµÈ °´Ã¼ ÁöÇâ ActionScript ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ¼³°èµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¼½¼Ç¿¡¼­´Â, class ¿ÀºêÁ§Æ®¸¦ ÃÖ´ëÇÑÀ¸·Î Ȱ¿ëÇÏ°í ½ÍÀº ¼÷·Ã ÇÁ·Î±×·¡¸Ó¸¦ ´ë»óÀ¸·Î, ÀÌ ¹®Á¦¸¦ ÆÄ°í µé¾î ¼³¸íÇÕ´Ï´Ù.

´ÙÀ½ÀÇ ±×¸²Àº,class A {} ¸í·É¹®(statement)·Î Á¤ÀÇµÈ A ¶ó´Â À̸§ÀÇ ´Ü¼øÇÑ Å¬·¡½º¸¦ ³ªÅ¸³»´Â class ¿ÀºêÁ§Æ®ÀÇ ±¸Á¶¸¦ ³ªÅ¸³À´Ï´Ù.



±×¸²ÁßÀÇ »ç°¢ÇüÀº ¿ÀºêÁ§Æ®¸¦ ³ªÅ¸³À´Ï´Ù. ±×¸²ÁßÀÇ ¿ÀºêÁ§Æ®¿¡´Â, class A ¿¡ ¼ÓÇϰí ÀÖ´Â °ÍÀ» ³ªÅ¸³»´Â ÷ÀÚ A °¡ ºÙ¾î ÀÖ½À´Ï´Ù. class ¿ÀºêÁ§Æ® (CA)¿¡´Â, ±× ¿ÜÀÇ Áß¿äÇÑ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶°¡ Æ÷ÇԵ˴ϴÙ. ÀνºÅϽº Ư¼º ¿ÀºêÁ§Æ® (TA)¿¡´Â, class Á¤Àdz»¿¡¼­ Á¤ÀÇµÈ ÀνºÅϽº properties °¡ Æ÷ÇԵ˴ϴÙ. class Ư¼º ¿ÀºêÁ§Æ® (TCA)´Â, Ŭ·¡½ºÀÇ ³»ºÎÇüÀ» ³ªÅ¸³», ±× Ŭ·¡½º¿¡ ÀÇÇØ Á¤ÀÇµÈ Á¤Àû properties ¸¦ Æ÷ÇÔÇÕ´Ï´Ù. ÷ÀÚ C ´Â "Ŭ·¡½º " ¸¦ ³ªÅ¸³À´Ï´Ù. prototype ¿ÀºêÁ§Æ® (PA)´Â,constructor properties ·Î ÃÖÃÊ·Î °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø class ¿ÀºêÁ§Æ®¸¦ Ç×»ó ÂüÁ¶ÇÕ´Ï´Ù.

Ư¼º ¿ÀºêÁ§Æ®

ActionScript 3.0 À¸·Î »õ·Ó°Ô µµÀÔµÈ Æ¯¼º ¿ÀºêÁ§Æ®´Â, ÆÛÆ÷¸Õ½º¸¦ °í·ÁÇØ ±¸ÇöµÇ¾ú½À´Ï´Ù. ±¸¹öÁ¯ÀÇ ActionScript ¿¡¼­´Â, À̸§ÀÇ look ¾÷Àº, Flash Player °¡ prototype üÀγ»¸¦ À̵¿Çϱâ À§ÇØ(¶§¹®¿¡) ½Ã°£ÀÌ °É¸®´Â ÇÁ·Î¼¼½º¿´½À´Ï´Ù. ActionScript 3.0 ¿¡¼­´Â, »ó¼Ó ¹ÞÀº properties °¡ Super Ŭ·¡½º·ÎºÎÅÍ ¼­ºê Ŭ·¡½ºÀÇ Æ¯¼º ¿ÀºêÁ§Æ®¿¡ º¹»çµÇ¹Ç·Î, À̸§ÀÇ look ¾÷Àº È¿À²ÀûÀÌ µÇ¾î ½Ã°£ÀÌ ´ÜÃàµÇ¾ú½À´Ï´Ù.

Ư¼º ¿ÀºêÁ§Æ®´Â ÇÁ·Î±×·¡¸Ó Äڵ忡 Á÷Á¢ ¾×¼¼½º ÇÒ ¼ö ¾ø½À´Ï´Ù¸¸, ÆÛÆ÷¸Õ½º°¡ Çâ»óÇØ ¸Þ¸ð¸® »ç¿ë·®ÀÌ »è°¨ÇÏ´Â °ÍÀ¸·ÎºÎÅÍ ¿ÀºêÁ§Æ®ÀÇ Á¸À縦 ¾Ë ¼ö ÀÖ½À´Ï´Ù. Ư¼º ¿ÀºêÁ§Æ®´Â, AVM2 ¿¡ Ŭ·¡½ºÀÇ ·¹À̾ƿô°ú ³»¿ë¿¡ °üÇÑ »ó¼¼ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ Á¤º¸°¡ ÀÖÀ¸¸é, AVM2 ´Â Á÷Á¢ ¸Ó½Å ÀνºÆ®·°¼ÇÀ» »ý¼ºÇØ ½Ã°£ÀÌ °É¸®´Â À̸§ÀÇ look ¾÷À» ½Ç½ÃÇÏÁö ¾Ê°í properties ¿¡ ¾×¼¼½º Çϰųª ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇϰųª ÇÒ ¼ö°¡ ÀÖ±â (À§ÇØ)¶§¹®¿¡, ½ÇÇà ½Ã°£À» Å«ÆøÀ¸·Î ´ÜÃàÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ư¼º ¿ÀºêÁ§Æ®ÀÇ ´öºÐ¿¡, ¿ÀºêÁ§Æ®ÀÇ ¸Þ¸ð¸®ÈÊÆ®ÇÁ¸°Æ®´Â, ±¸¹öÁ¯ÀÇ ActionScript ÀÇ °°Àº ¿ÀºêÁ§Æ®¿Í ºñ±³ÇØ ²Ï ÀÛ°Ô ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Ŭ·¡½º°¡ sealed ÀÇ °æ¿ì (Áï, Ŭ·¡½º°¡ dynamic ¿Í ¼±¾ðµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì), Ŭ·¡½ºÀÇ ÀνºÅϽº´Â µ¿ÀûÀ¸·Î Ãß°¡ÇÏ´Â properties ¿¡ ÇØ½Ã Å×À̺íÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê°í, ÀÌ Å¬·¡½º¿¡¼­ Á¤ÀÇµÈ °íÁ¤ properties ÀÇ Æ¯¼º ¿ÀºêÁ§Æ® ¹× ½½·Ô¿¡ÀÇ Æ÷ÀÎÅ͸¦ º¸°ü À¯ÁöÇÒ »ÓÀÔ´Ï´Ù. ±× °á°ú, ActionScript 2.0 À¸·Î 100 ¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸®°¡ ÇÊ¿äÇß´ø ¿ÀºêÁ§Æ®°¡, ActionScript 3.0 ¿¡¼­´Â 20 ¹ÙÀÌÆ®·Î ³¡³³´Ï´Ù.

¸Þ¸ð

 

Ư¼º ¿ÀºêÁ§Æ®´Â, ³»ºÎ ±¸ÇöÀÇ »ó¼¼ÇÕ´Ï´Ù. ActionScript ÀÇ ÇâÈÄÀÇ ¹öÁ¯À¸·Î º¯°æµÇÁö ¾Ê´Â, ¶Ç´Â ¾ø¾îÁöÁö ¾Ê´Â´Ù°í´Â ÇÒ ¼ö ¾ø½À´Ï´Ù.

prototype ¿ÀºêÁ§Æ®

ActionScript ÀÇ class ¿ÀºêÁ§Æ®¿¡´Â, Ŭ·¡½ºÀÇ prototype ¿ÀºêÁ§Æ®¸¦ ÂüÁ¶ÇÏ´Â prototype properties °¡ ÀÖ½À´Ï´Ù. prototype ¿ÀºêÁ§Æ®´Â, ActionScript ÀÇ prototype º£À̽º ¾ð¾î·Î¼­ÀÇ ·çÆ®ÀÇ À¯»êÀÔ´Ï´Ù. »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,ActionScript 1.0 À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

prototype properties ´Â Àбâ Àü¿ë(read-only)À¸·Î, ´Ù¸¥ ¿ÀºêÁ§Æ®¸¦ °¡¸®Å°µµ·Ï(µíÀÌ) º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. À̰ÍÀº, ±¸¹öÁ¯ÀÇ ActionScript ÀÇ Å¬·¡½ºÀÇ prototype properties ¿Í´Â ´Ù¸¨´Ï´Ù. ±¸¹öÁ¯ÀÇ properties ¿¡¼­´Â, ´Ù¸¥ Ŭ·¡½º¸¦ °¡¸®Å°µµ·Ï(µíÀÌ) prototype¸¦ ÀçÇÒÀÎ ¸ÂÈ÷°í ÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. prototype properties ´Â Àбâ Àü¿ë(read-only)ÀÔ´Ï´Ù¸¸, ÂüÁ¶µÇ´Â prototype ¿ÀºêÁ§Æ®´Â Àбâ Àü¿ë(read-only)ÀÌ ¾Æ´Õ´Ï´Ù. Áï, prototype ¿ÀºêÁ§Æ®¿¡ »õ·Î¿î properties ¸¦ Ãß°¡ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. prototype ¿ÀºêÁ§Æ®¿¡ Ãß°¡µÈ properties ´Â, Ŭ·¡½ºÀÇ ¸ðµç ÀνºÅϽº°£¿¡ °øÀ¯µË´Ï´Ù.

±¸¹öÁ¯ÀÇ ActionScript ¿¡¼­´Â À¯ÀÏÇÑ »ó¼Ó ¸ÞÄ«´ÏÁòÀÎ prototype üÀÎÀº, ActionScript 3.0 ¿¡¼­´Â ÀÌÂ÷ÀûÀÎ ¿ªÇÒ¸¸À» ¿Ï¼öÇÕ´Ï´Ù. ÁÖ¿ä »ó¼Ó ¸ÞÄ«´ÏÁòÀÎ °íÁ¤ properties ÀÇ »ó¼ÓÀº, Ư¼º ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ ³»ºÎÀûÀ¸·Î 󸮵˴ϴÙ. °íÁ¤ properties ´Â, class Á¤ÀÇÀÇ ÀϺημ­ Á¤ÀǵǴ º¯¼ö ¶Ç´Â ¸Þ¼ÒµåÀÔ´Ï´Ù. °íÁ¤ properties ÀÇ »ó¼ÓÀº,class,extends,override µîÀÇ Å°¿öµå·Î °ü·ÃÁöÀ» ¼ö ÀÖ´Â »ó¼Ó ¸ÞÄ«´ÏÁòÀ̱â (À§ÇØ)¶§¹®¿¡, class »ó¼ÓÀ̶ó°íµµ ºÒ¸³´Ï´Ù.

prototype üÀÎÀº, °íÁ¤ properties ÀÇ »ó¼Óº¸´Ù µ¿ÀûÀÎ ´ëü »ó¼Ó ¸ÞÄ«´ÏÁòÀÌ µË´Ï´Ù. properties ´Â, class Á¤ÀÇÀÇ ÀϺημ­ »Ó¸¸ÀÌ ¾Æ´Ï°í, ½ÇÇà½Ã¿¡ class ¿ÀºêÁ§Æ®ÀÇ prototype properties ·ÎºÎÅ͵µ Ŭ·¡½ºÀÇ prototype ¿ÀºêÁ§Æ®¿¡ Ãß°¡ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ´Ù¸¸, ÄÄÆÄÀÏ·¯¸¦ strict ¸ðµå·Î ¼³Á¤ÇßÀ» °æ¿ì´Â, Ŭ·¡½º¸¦ dynamic Ű¿öµå·Î ¼±¾ðÇÏÁö ¾Ê´Â ÇÑ prototype ¿ÀºêÁ§Æ®¿¡ Ãß°¡µÈ properties ¿¡ ¾×¼¼½º ÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

¾ó¸¶µçÁöÀÇ properties °¡ prototype ¿ÀºêÁ§Æ®¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ°í Àִ Ŭ·¡½ºÀÇ ÁÁÀº ¿¹·Î¼­ Object Ŭ·¡½º°¡ ÀÖ½À´Ï´Ù. Object Ŭ·¡½ºÀÇ toString() ¿Í valueOf() ¸Þ¼Òµå´Â, ½ÇÁ¦·Î´Â Object Ŭ·¡½ºÀÇ prototype ¿ÀºêÁ§Æ®ÀÇ properties ¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ÇÔ¼öÀÔ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹´Â, ÀÌ·¯ÇÑ ¸Þ¼ÒµåÀÇ ¼±¾ðÀÌ ÀÌ·ÐÀûÀ¸·Î ¾î¶»°Ô º¸ÀÌ´ÂÁö¸¦ ³ªÅ¸³À´Ï´Ù. ´Ù¸¸, ±¸ÇöÀÇ »ó¼¼ÇϰԺ¸´Ù ½ÇÁ¦ÀÇ ±¸ÇöÀº ¾à°£ ´Ù¸¨´Ï´Ù.

public dynamic class Object {
    prototype.toString = function () : String {
        // ¸í·É¹®(statement)
    }
    prototype.valueOf = function () {
        // ¸í·É¹®(statement)
    }
}

Àü¼úÇÑ °Íó·³, properties ´Â, class Á¤ÀÇ ¿ÜºÎ¿¡¼­ Ŭ·¡½ºÀÇ prototype ¿ÀºêÁ§Æ®¿¡ °ü·ÃÁöÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î,toString() ¸Þ¼Òµå´Â, ´ÙÀ½°ú °°ÀÌ Object Ŭ·¡½ºÀÇ Á¤ÀÇ ¿ÜºÎ¿¡¼­ Á¤ÀÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

Object.prototype.toString = function () : String {
    // ¸í·É¹®(statement)
}

±×·¯³ª, °íÁ¤ properties ÀÇ »ó¼Ó°ú´Â ´Þ¶ó, ¼­ºê Ŭ·¡½º¿¡¼­ ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇÇÏ´Â °æ¿ì, prototypeÀÇ »ó¼Ó¿¡¼­´Â override Ű¿öµå°¡ ÇÊ¿ä ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î, Object Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½º¿¡¼­ valueOf() ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇÇÏ´Â °æ¿ì, ´ÙÀ½ÀÇ 3 °³ÀÇ ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù. 1 ¹øÂ°´Â, class Á¤ÀÇ ³»ºÎÀÇ ¼­ºê Ŭ·¡½ºÀÇ prototype ¿ÀºêÁ§Æ®·Î valueOf() ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â, Foo ¶ó°í ÇÏ´Â Object ÀÇ ¼­ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇØ, Foo ÀÇ prototype ¿ÀºêÁ§Æ®·Î class Á¤ÀÇÀÇ ÀϺημ­ valueOf() ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇÇÕ´Ï´Ù. ¾î´À Ŭ·¡½ºµµ Object ¸¦ »ó¼Ó ¹Þ±â À§ÇØ(¶§¹®¿¡),extends Ű¿öµå¸¦ »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

dynamic class Foo{
    prototype.valueOf = function() {
        return "Instance of Foo"
    }
}

2 ¹øÂ°´Â, ´ÙÀ½ÀÇ Äڵ忡 ³ªÅ¸³»µµ·Ï(µíÀÌ), class Á¤Àǿܿ¡ ÀÖ´Â Foo ÀÇ prototype ¿ÀºêÁ§Æ®·Î valueOf() ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇÇÕ´Ï´Ù.

Foo.prototype.valueOf = function() {
        return "Instance of Foo";
}

3 ¹øÂ°´Â, Foo Ŭ·¡½ºÀÇ ÀϺημ­ valueOf() ¶ó°í ÇÏ´Â °íÁ¤ properties ¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀº, °íÁ¤ properties ÀÇ »ó¼Ó°ú prototypeÀÇ »ó¼ÓÀÌ È¥ÀçÇÑ´Ù°í ÇÏ´Â Á¡À¸·Î½á ´Ù¸¥ 2 °³°ú´Â ´Ù¸¨´Ï´Ù. valueOf() ¸¦ ÀçÁ¤ÀÇÇÏ´Â Foo ÀÇ ¼­ºê Ŭ·¡½º¿¡¼­´Â,override Ű¿öµå¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â, Foo ·Î °íÁ¤ properties ·Î¼­ Á¤ÀÇµÈ valueOf() ¸¦ ³ªÅ¸³À´Ï´Ù.

class Foo {
    function valueOf() {
        return "Instance of Foo";
    }
}

AS3 namespace

°íÁ¤ properties ÀÇ »ó¼Ó°ú prototypeÀÇ »ó¼ÓÀ̶ó°í ÇÏ´Â 2 °³ÀÇ ´Ù¸¥ »ó¼Ó ¸ÞÄ«´ÏÁòÀÌ Á¸ÀçÇϸé, ÄÚ¾î Ŭ·¡½ºÀÇ properties ¹× ¸Þ¼Òµå¿¡ °üÇØ¼­, Èï¹Ì·Î¿î ȣȯ¼ºÀÇ ¹®Á¦°¡ »ý±é´Ï´Ù. ECMAScript Edition 4 ¾ð¾î »ç¾ç¾È°úÀÇ È£È¯¼ºÀ¸·ÎºÎÅÍ´Â, prototypeÀÇ »ó¼ÓÀ» »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Áï, ÄÚ¾î Ŭ·¡½ºÀÇ properties ¹× ¸Þ¼Òµå´Â, ±× Ŭ·¡½ºÀÇ prototype ¿ÀºêÁ§Æ®·Î Á¤Àǵ˴ϴÙ. ÇÑÆí, Flash Player API ¿ÍÀÇ È£È¯¼º¿¡¼­´Â, °íÁ¤ properties ÀÇ »ó¼ÓÀ» »ç¿ëÇÏ´Â °ÍÀÌ ¿ä±¸µË´Ï´Ù. Áï, ÄÚ¾î Ŭ·¡½ºÀÇ properties ¹× ¸Þ¼Òµå´Â,const,var, ¹× function ÀÇ Å°¿öµå¸¦ »ç¿ëÇØ class Á¤ÀÇ·Î Á¤Àǵ˴ϴÙ. °Ô´Ù°¡ prototype ¹öÁ¯ ´ë½Å¿¡ °íÁ¤ properties ¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î, ·±Å¸ÀÓ ÆÛÆ÷¸Õ½º¸¦ ÇöÀúÇÏ°Ô Çâ»ó½ÃŰ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.

ActionScript 3.0 ¿¡¼­´Â, ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­, ÄÚ¾î Ŭ·¡½º¿¡ prototypeÀÇ »ó¼Ó°ú °íÁ¤ properties ÀÇ »ó¼ÓÀÇ ¾çÂÊ ¸ðµÎ¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù. °¢ ÄÚ¾î Ŭ·¡½º¿¡, 2 ¼¼Æ®ÀÇ properties ¹× ¸Þ¼Òµå°¡ Æ÷ÇԵ˴ϴÙ. 1 ¼¼Æ®´Â, ECMAScript »ç¾ç°úÀÇ È£È¯¼ºÀ» À§Çؼ­(¶§¹®¿¡) prototype ¿ÀºêÁ§Æ®·Î Á¤ÀÇµÇ¾î ³ª¸ÓÁöÀÇ 1 ¼¼Æ®´Â, Flash Player API ¿ÍÀÇ È£È¯¼ºÀ» À§Çؼ­(¶§¹®¿¡) °íÁ¤ properties ¹× AS3 namespace¿¡¼­ Á¤Àǵ˴ϴÙ.

AS3 namespaceÀº, ÀÌ 2 ¼¼Æ®ÀÇ properties ¹× ¸Þ¼Òµå°£ÀÇ ¼±ÅÃÀ» À§Çؼ­(¶§¹®¿¡) Æí¸®ÇÑ ¸ÞÄ«´ÏÁòÀ» Á¦°øÇÕ´Ï´Ù. AS3 namespace¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì, ÄÚ¾î Ŭ·¡½ºÀÇ ÀνºÅϽº´Â, ÄÚ¾î Ŭ·¡½ºÀÇ prototype ¿ÀºêÁ§Æ®¿¡ Á¤Àǵǰí ÀÖ´Â properties ¹× ¸Þ¼Òµå¸¦ »ó¼Ó¹Þ½À´Ï´Ù. AS3 namespace¸¦ »ç¿ëÇϱâ·Î °áÁ¤ÇßÀ» °æ¿ì´Â, °íÁ¤ properties °¡ prototype properties º¸´Ù Ç×»ó ¿ì¼±µÇ±â (À§ÇØ)¶§¹®¿¡, ÄÚ¾î Ŭ·¡½ºÀÇ ÀνºÅϽº´Â AS3 ¹öÁ¯À» »ó¼Ó¹Þ½À´Ï´Ù. Áï, °íÁ¤ properties °¡ ÀÌ¿ë °¡´ÉÇÑ °æ¿ì¿¡´Â, °°Àº À̸§ÀÇ prototype properties ´Â ¾Æ´Ï°í, ±× °íÁ¤ properties °¡ ¹Ýµå½Ã »ç¿ëµË´Ï´Ù.

AS3 namespace¿¡¼­ ¼ö½ÄÇÏ´Â °Í¿¡ ÀÇÇØ, AS3 namespace ¹öÁ¯ÀÇ properties ¶Ç´Â ¸Þ¼Òµå¸¦ ¼±ÅÃÀûÀ¸·Î »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ Äڵ忡¼­´Â, AS3 ¹öÁ¯ÀÇ Array.pop() ¸Þ¼Òµå¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù.

var nums:Array = new Array(1, 2, 3);
nums.AS3::pop();
trace(nums); // Ãâ·Â : 1,2

´ë½Å¿¡,use namespace Áö½Ã¹®À» »ç¿ëÇØ ÄÚµå ºí·Ï³»ÀÇ ¸ðµç Á¤ÀÇ¿¡ ´ëÇØ¼­ AS3 namespace¸¦ ¿­ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ Äڵ忡¼­´Â,use namespace Áö½Ã¹®À» »ç¿ëÇØ pop() ¸Þ¼Òµå¿Í push() ¸Þ¼ÒµåÀÇ ¾çÂÊ ¸ðµÎ¿¡ ´ëÇØ¼­ AS3 namespace¸¦ ¿­°í ÀÖ½À´Ï´Ù.

use namespace AS3;

var nums:Array = new Array(1, 2, 3);
nums.pop();
nums.push(5);
trace(nums) // Ãâ·Â : 1,2,5

ActionScript 3.0 ¿¡¼­´Â, AS3 namespace¸¦ ÇÁ·Î±×·¥ Àüü¿¡ Àû¿ëÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ), properties ¼¼Æ® ¸¶´Ù ÄÄÆÄÀÏ·¯ ¿É¼Çµµ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. -as3 ÄÄÆÄÀÏ·¯ ¿É¼ÇÀº AS3 namespace¸¦ ³ªÅ¸³»,-es ÄÄÆÄÀÏ·¯ ¿É¼Ç (es ´Â ECMAScript ÀÇ ¾à¾î)Àº prototype »ó¼Ó ¿É¼ÇÀ» ³ªÅ¸³À´Ï´Ù. ÇÁ·Î±×·¥ Àüü¿¡ ´ëÇØ¼­ AS3 namespace¸¦ ¿­·Á¸é ,-as3 ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» true ¿¡,-es ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» false ·Î ¼³Á¤ÇÕ´Ï´Ù. prototype ¹öÁ¯À» »ç¿ëÇÏ·Á¸é , ¾çÂÊ ¸ðµÎÀÇ ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» ¹Ý´ëÀÇ °ªÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. Adobe Flex Builder 2 ÀÇ µðÆúÆ®ÀÇ ÄÄÆÄÀÏ·¯ ¼³Á¤Àº,-as3 = true ¹× -es = false ÀÔ´Ï´Ù.

¸î°³ÀÇ ÄÚ¾î Ŭ·¡½º¸¦ È®ÀåÇØ ¸Þ¼ÒµåÀÇ ¾î´ÀÂÊÀ̵çÀ» ÀçÁ¤ÀÇ(override) ÇÒ °èȹÀÌ ÀÖ´Â °æ¿ì¿¡´Â, ÀçÁ¤ÀÇ(override) ¸Þ¼ÒµåÀÇ ¼±¾ð ¹æ¹ýÀ¸·Î AS3 namespace°¡ ¾î¶»°Ô ¿µÇâÀ» ÁÙ °¡´É¼ºÀÌ ÀÖ´ÂÁö¸¦ ÀÌÇØÇØ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù. AS3 namespace¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â, ÄÚ¾î class ¸Þ¼ÒµåÀÇ ¾î´À ¸Þ¼Òµå ÀçÁ¤ÀÇ(override)µµ,override ¼Ó¼ºÀ¸·Î AS3 namespace¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. AS3 namespace¸¦ »ç¿ëÇÏÁö ¾Ê°í ÄÚ¾î class ¸Þ¼Òµå¸¦ ¼­ºê Ŭ·¡½º¿¡¼­ ÀçÁ¤ÀÇÇÏ´Â °æ¿ì´Â, AS3 namespaceµµ override Ű¿öµåµµ »ç¿ëÇÏÁö ¸»¾Æ ÁÖ¼¼¿ä.