我在Library中有很少的MovieClip,我想制作将它们加载到舞台中的功能。我的问题是我找不到与为每个MovieClip制作单独的函数不同的解决方案。我正在寻找类似的东西:
function addAnyClip(name){
//create new object 'name'
stage.addChild(chosenObject);
rest of code
}
因为它比以下更好:
function addClip1(){
var mc1:Clip1 = new Clip1;
stage.addChild(mc1);
///rest of code
}
function addClip2(){
var mc1:Clip2 = new Clip2;
stage.addChild(mc2);
///rest of code
}
function addClip3(){
var mc1:Clip3 = new Clip3;
stage.addChild(mc3);
///rest of code
}
...
答案 0 :(得分:5)
使用getDefinitionByName
您可以执行以下操作:
var mcClass:Class = getDefinitionByName("NameOfClipInLibrary")
然后只需创建一个类型为mcClass
以下是一些帮助解释如何使用它的链接... http://www.jesseknowles.com/blog/dynamically_attaching_movieclips_in_as3/
答案 1 :(得分:1)
这将巩固您在上面显示的内容:
function addChildOfType(type:Class):void{
var mc:type = new type();
stage.addChild(mc);
}
使用此电话:
addChildOfType(Clip1);
addChildOfType(Clip2);
addChildOfType(Clip3);
编辑:
如果您的库是外部加载的swf,那么@M。 Laing在如何获得它们方面是正确的。如果您的库是同一个Flash文件中的Flash库,那么这个答案将会解决您的问题。