使用数组从库中动态添加子项

时间:2010-02-01 00:53:32

标签: flash actionscript-3

我正在将旧的AS2项目移植到AS3,并遇到了问题。我尝试了一些不同的东西但没有成功。

在从库中动态附加MC时,在AS2中的

我有时会使用数组。数组会保存链接引用,就像这样;

var mc:String = state_ar[currentState];
this.container.attachMovie(mc,mc,this.getNextHighestDepth());
targetMC = this.container[mc];

我如何在AS3中执行此操作?

3 个答案:

答案 0 :(得分:2)

您可以使用getDefinition()getDefinitionByName()

执行此操作

查看this answer 代码,您的情况听起来非常相似。

注意:唯一的区别是你可能正在使用MovieClip,而不是图像,因此你不需要构造函数中的0,0参数。

答案 1 :(得分:1)

我不太确定这是不是你要问的但是我会试一试。

//New array to store Movie Clips references    
var myArray:Array = new Array();
//Create a movie clip
var movieClip:MovieClip = new MovieClip();
//Add it to the array for reference
myArray.push(movieClip);
//Put it on the stage
this.addChild(movieClip);

您仍然可以使用数组存储对象的引用,并且可以直接引用它们。


在as3中,库中的MovieClip将有一个类名,所以如果你在库中有一个名为MyMovie的MC,你可以在as3中添加它:

var myMovie:MyMovie = new MyMovie();
addChild(myMovie);

答案 2 :(得分:1)

答案;

var mc:String = state_ar[currentState];
var classReference:Class = getDefinitionByName(mc) as Class;
var tempMC:Object = new classReference();
this.container.addChild(tempMC)

感谢乔治