2012-07-11 4 views
0

제 라이브러리에는 tip1, tip2, tip3, tip4 ... 등의 클래스가 있습니다. for 루프를 사용하여 스테이지에서 각각 하나의 인스턴스를 만들 수 있습니까? 나는 이것을 시도했으나 효과가없는 것 같았다.for 루프에서 일련의 클래스 인스턴스를 만드는 방법 as3

var tips:int = 12; 
for(var i:int = 1; i<=tips; i++){ 
    var tipName:String = "tip"+i 

    var tip:MovieClip = new tipName(); 
    tip.name = "tip" + i 
    tip.x = stage.width; 
    tip.y = 0; 
    addChild(tip); 
} 

아무 도움이됩니다. 감사!

답변

0

대신

var clazz:Class = getDefinitionByName(tipName) as Class; 
var tip:MovieClip = new clazz(); 

또한 (메모리에서 작성)

var tip:MovieClip = new tipName(); 

시도, 당신은 일반적으로 후자 (무대의 경계 상자의 너비를 반환하기 때문에, stage.width 대신 stage.stageWidth를 사용하고자하는 swf 파일이 다루는 영역과 같지 않을 수도 있습니다).

3

"getDefinitionByName"부분이 누락되었습니다.

// Up top 
import flash.utils.getDefinitionByName; 

// Down below 
var tips:int = 12; 
for (var i:int = 1; i < tips; ++i) { 
    var myClass:Class = getDefinitionByName('tip' + i) as Class; 
    var tip:Object = new myClass(); 
    tip.name = "tip" + i; 

.... 

}