AS2.0 ¿¡¼ ÈçÈ÷ ¹«ºñŬ·´À̳ª Ŭ·¡½º³»ÀÇ °´Ã¼³ª ÇÏÀ§ ¹«ºñŬ·´À» Ž»öÇÏ´Â ¹æ¹ýÀ¸·Î for... inÀÇ
±¸¹®À» »ç¿ëÇÏ¿´´Ù. Ž»öÈÄ ÇØ´ç ÀνºÅÏÆ®³ª ÇÏÀ§¹«ºñŬ·´¿¡ ÀÏ°ý, °³º°ÀûÀÎ ¾×¼ÇÁ¦¾îµîÀÇ ÇÊ¿ä¿¡
ÀÇÇؼ (¾ÆÁÖ) ¸¹ÀÌ »ç¿ëÇß´ø ¹æ¹ýÀ̾ú´Ù.
_________________________________________________________________________________
¿¹ : [AS2] ÇöÀç ¹«ºñŬ·´¾È¿¡ ÀÖ´Â ¸ðµç ÇÏÀ§ ¹«ºñŬ·´ÀÇ xÁÂÇ¥¸¦ 0À¸·ÎÇÏ°í, Á¤Áö½ÃŲ´Ù
¿©±â¼ this ´Â ¹«ºñŬ·´ÀÌ´Ù.
for(var p in this){
trace(p + "::" + this[p]);
this[p].x = 0;
this[p].stop();
}
_____________________________________________________________________________________
±×·±µ¥ AS3¿¡¼ for.....in ȤÀº for each ....in µîÀÇ ±¸¹®À¸·Î´Â µ¿ÀûÀ¸·Î Á¤ÀÇµÈ º¯¼ö³ª ÀνºÅÏÆ®¿¡
´ëÇؼ Ž»öÀÌ ºÒ°¡´ÉÇÏ´Ù. Áï, À§¿Í °°Àº Ž»ö ¹æ¹ýÀ¸·Î´Â ¿øÇÏ´Â °á°ú¸¦ ¾ò±â Èûµé´Ù.
DisplayObjectContainer¿¡¼ Á¦°øÇÏ´Â numChildren À̳ª getChil~~~~µîÀÇ ¸Þ¼Òµå¿Í ÇÁ·ÎÆÛƼ´Â
µîÀ¸·Î ¾ò¾î³»´Â °Íµµ ºÒ°¡´ÉÇÏ´Ù.(ȸ鿡 addchildµÇÁö ¾Ê¾ÒÀ¸¹Ç·Î....... ³Ê¹« ´ç¿¬ÇÑ°¡?)
AS3¿¡¼´Â ´ÙÀ½°ú °°ÀÌ Å½»öÇÒ ¼ö ÀÖÀ¸¸ç, ÁÖ¿ä¸Þ¼Òµå·Î describeTypeÀ» µé ¼ö ÀÖ´Ù.(·¹ÆÛ·±½º ÂüÁ¶)
´ÙÀ½ ¿¹Á¦´Â ÇØ´ç Ŭ·¡½º¿¡¼ Movieclip ŸÀÔÀÇ ÇÏÀ§ÀνºÅÏÆ®¸¦ ã¾Æ¼ ÇØ´çÇϴ ŸÀÔÀÌ ¸ÂÀ¸¸é
Dic(Dictionary Ŭ·¡½º)·Î ÀúÀåÇÑ´Ù. ¿©±â¼ DictionaryŬ·¹½º¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯´Â weak ÂüÁ¶¸¦
»ç¿ëÇؼ ¼öµ¿À¸·Î °¡ºñÁö Ä÷º¼ÇÀ» Á¦¾îÇϱâ À§ÇÑ ¸ñÀûÀÌ´Ù.
_______________________________________________________________________________________
[¿¹Á¦ AS3.0 ÄÚµå]
import flash.utils.*;
var description:XML = describeType(this);
var temp_obj:XMLList = description..variable;
var dic:Dictionary = new Dictionary(true);
for(var p in temp_obj){
if(this[temp_obj[p].@name] is MovieClip){
dic[String(temp_obj[p].@name)] = temp_obj[p];
trace(p, "::", dic[String(temp_obj[p].@name)].@type, temp_obj[p].@name);
}
}
_________________________________________________________________________________________
´ÙÀ½Àº À§ÀÇ Äڵ带 Á¶±Ý ¹ßÀü½ÃÄѼ ÀÛ¼ºÇØ º¸¾Ò´Ù.
--------------------------------------------------------------------------
[UtilObject.as]
// ActionScript file
package net.Hiddenid.Utils{
/**
* 1. ÆÄÀϸí : UtilObject.as
* <p/>
* 2. Á¦ÀÛ¸ñÀû : °´Ã¼ µ¥ÀÌÅÍ ÄÁÆ®·Ñ & Á¢±Ù
* <p/>
* 3. Á¦ÀÛÀÚ : À¯ÁÖ»ó(Hiddenid)
* <p/>
* 4. Á¦ÀÛÀÏ : 2007.06.11 ¿ÀÈÄ 10:28
* <p/>
* 5. ÃÖÁ¾¼öÁ¤ÀÏ : 2007.08.11 ¿ÀÈÄ 10:28
* <p/>
* 6. ºÎ°¡¼³¸í : ¸Þ¼Òµå Ãß°¡ ¹× º¯Çü ÁøÇàÁß. ½Ì±ÛÅÏ ÆÐÅÏ
* <p/>
* 8. »ç¿ë¹ý :
* <listing>
* import net.Hiddenid.Utils.UtilObject;
* UtilObject.getInstance().addEventListener("Event_Run", Type_Trigger);
* UtilObject.getInstance().Manage_Object(this, ["Mc_Piece","Object"], true);
* </listing>
* <p/>
* @playerversion Flash 9.0.28.0
* @langversion ActionScript3.0
*/
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import net.Hiddenid.Events.Hiddenid_Event;
public class UtilObject extends EventDispatcher {
/**
* »ç¿ëÀÚ Á¤ÀÇ À̺¥Æ® À̺¥Æ® »ó¼ö ¼±¾ð
* @eventType Event_Run
*/
public static const Trigger_Run:String = 'Event_Run';
/**
* ½ÌŬÅÏ ÆÐÅÏ. °´Ã¼ ÀνºÅϽº
*/
private static var _instance:UtilObject = null;
/**
* traceÀÇ Ãâ·Â¿©ºÎ °áÁ¤
*/
private var _trace_mode:Boolean = false;
public function UtilObject(target:IEventDispatcher=null):void{
super(target);
}
public static function getInstance():UtilObject {
if(_instance == null) _instance = new UtilObject();
return _instance;
}
/**
* °´Ã¼(Ŭ·¡½º)¸¦ °Ë»çÇÏ¿© typeÆĶó¹ÌÅÍ¿¡ ¼±¾ðµÈ ŸÀÔÀÏ °æ¿ì trace ȤÀº triggerÀÌ ÀÛµ¿ÇÏ°Ô µÈ´Ù.
*
* @param object °ËÅäÇÏ·Á´Â ¿ÀºêÁ§Æ®(ȤÀº Ŭ·¡½º)
* @param type °ËÅä Áß ¹è¿¿¡ ¼ÓÇÑ Å¸ÀÔÀ϶§¸¸ traceȤÀº triggerÀÛµ¿
* @param trigger °ËÅä Áß ÀÛµ¿ÇÒ trigger.
*
*/
public function Manage_Object(object:*, type:Array = null, trigger:Boolean = false):void{
var description:XML = describeType(object);
var Xml_Refer:XMLList = description..variable;
var dic:Dictionary = new Dictionary(true);
try{
for (var p:String in Xml_Refer){
var temp_p:String = Xml_Refer[p]["@type"];
var ttt = Xml_Refer[p];
for(var i:int = 0 ; i < type.length ; i++){
//if(getQualifiedClassName(Xml_Refer[p]) is getQualifiedClassName(type[i])&& type){
if((getDefinitionByName(temp_p) == getDefinitionByName(type[i].toString()))&& type != null){
this._trace_mode == true ? trace(getQualifiedSuperclassName(getDefinitionByName(type[i].toString())) , ":°´Ã¼Ãâ·Â:",type[i] , p, getDefinitionByName(temp_p)) : null;
dic[String(Xml_Refer[p]["@name"])] = Xml_Refer[p];
}else{
if(type == null && this._trace_mode == true){
trace(":¸ðµç°´Ã¼ üũ:",p);
}
}
}
}
}catch(e:Error){
trace( "üũŸÀÔ::",getDefinitionByName(temp_p), ">>UtilObject_60_¿¡·¯¹ß»ý::", e);
}
try{
if(trigger == true){
dispatchEvent(new Hiddenid_Event(Hiddenid_Event.Trigger_Run, dic));
}
}catch(e:Error){
trace("UtilObject_Line:88_¿¡·¯¹ß»ý::" + e);
}
}
//Get, Setter ¼±¾ð½ÃÀÛ_______________________________________________________________________
/*
°´Ã¼ trace ¸Þ¼¼Áö Ãâ·Â¿©ºÎ °áÁ¤
*/
/**
* trace¿©ºÎ °áÁ¤
*/
public function get trace_mode():Boolean{
return this._trace_mode;
}
/**
* @private (setter)
*/
public function set trace_mode(mode:Boolean):void{
this._trace_mode = mode;
}
//Get, Setter ¼±¾ð³¡_________________________________________________________________________
}
}
----------------------------------------------------------------------------
___________________________________________________________________________________
[À§¿¡¼ »ç¿ëÇÏ´Â »ç¿ëÀÚ EventŬ·¡½º]
[HIddenid_Event.as]
// Copyright � 2007. Adobe Systems Incorporated. All Rights Reserved.
package net.Hiddenid.Events
{
import flash.events.Event;
import flash.utils.Dictionary;
/**
* Hiddenid_Event Ŭ·¡½º´Â »ç¿ëÀÚ Á¤ÀÇ À̺¥Æ® Ŭ·¡½º·Î, DictionaryŬ·¡½º¿¡ »ç¿ëÀÚ Á¤ÀÇ ÆĶó¹ÌÅ͸¦ ´ã±â À§ÇÑ ¸ñÀûÀ¸·Î ¾²ÀδÙ.
* @playerversion Flash 9
* @langversion 3.0
* @keyword Tween event
* @see fl.transitions.Tween
*/
public class Hiddenid_Event extends Event
{
/**
* Æ®¸®°Å ȤÀº Hiddenid À̺¥Æ® ¹ß»ý...... ½ÇÇà ½ÃÀÛÀ» Ç¥Çö
* Indicates that the motion has started playing.
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>ÇöÀç À̺¥Æ® ¸®½º³Ê¸¦ ÅëÇØ Event °´Ã¼¸¦ ó¸®ÇÏ°í ÀÖ´Â °´Ã¼. </td></tr>
* <tr><td><code>target</code></td><td>À̺¥Æ® ´ë»ó</td></tr>
* <tr><td><code>_dictionary</code></td><td>target¿¡ Àü´ÞµÈ ÆĶó¹ÌÅÍ Á¤º¸¸¦ ´ã°í ÀÖ´Â Dictionary°´Ã¼</td></tr>
* </table>
* @playerversion Flash 9
* @langversion 3.0
* @keyword Hiddenid Event
* @eventType Event_Run
*/
public static const Trigger_Run:String = 'Event_Run';
/**
* ÇØ´ç À̺¥Æ® ûÃë ÇÔ¼ö°¡ Àü´Þ¹Þ°Ô µÇ´Â µ¥ÀÌÅÍ µñ¼Å³Ê¸®. ¸ðµç º¯¼ö ´ã´Â´Ù. °¡ºñÁö Ä÷¢¼Ç ¼öµ¿°ü¸®¸¦ À§ÇØ ¾àÇÑÂüÁ¶ »ç¿ë
*
* @playerversion Flash 9
* @langversion 3.0
* @keyword Hiddenid Event
*/
public var _dictionary:Dictionary = new Dictionary(true);
/**
* Constructor function for a TweenEvent object.
*
* @param type À̺¥Æ®Å¸ÀÔ; ÀϾ »ç¿ëÀÚ À̺¥Æ® ¾×¼ÇÀ» °¡¸£Å²´Ù.indicates the action that caused the event.
* @param dic À̺¥Æ® ¾×¼Ç¿¡ Àü´ÞµÈ DictionaryÀνºÅÏÆ®
* @param bubbles À̺¥Æ®°¡ ¹öºí¸µ À̺¥Æ®ÀÎÁö ¿©ºÎ¸¦ ³ªÅ¸³½´Ù. ÀÌ °ªÀº À̺¥Æ®°¡ ¹öºí¸µ °¡´ÉÇÑ °æ¿ì trueÀÌ°í, ±×·¸Áö ¾ÊÀ¸¸é falseÀÌ´Ù.
* @param cancelable ÇØ´ç À̺¥Æ®¿Í ¿¬°üµÈ ºñÇìÀ̺ñ¾î¸¦ Â÷´ÜÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ¸¦ ³ªÅ¸³½´Ù.
*
* @playerversion Flash 9
* @langversion 3.0
* @keyword Tween event
*/
public function Hiddenid_Event(type:String, dic:Dictionary = null, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
this._dictionary = dic;
}
/**
* @private
*/
override public function clone():Event
{
return new Hiddenid_Event(this.type, this._dictionary, this.bubbles, this.cancelable);
}
}
}