我正在将旧的AS2项目移植到AS3,并遇到了问题。我尝试了一些不同的东西但没有成功。
在从库中动态附加MC时,在AS2中的我有时会使用数组。数组会保存链接引用,就像这样;
var mc:String = state_ar[currentState];
this.container.attachMovie(mc,mc,this.getNextHighestDepth());
targetMC = this.container[mc];
我如何在AS3中执行此操作?
答案 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)
感谢乔治