我正在使用BulkLoader将MovieClips和Bitmaps加载到我的AS3应用程序中。位图很容易克隆,但我有一些复杂的MovieClip的问题,它有很多子,按钮,符号等。
我发现很多方法可以将MovieClip克隆为Bitmaps,但是有没有办法将它克隆为MovieClip及其所有属性?
答案 0 :(得分:10)
有两种方式:
您可以复制Loader:
var newLoader:Loader = new Loader();
newLoader.loadBytes(oldLoader.contentLoaderInfo.bytes);
或者你可以获得MovieClip类并创建它的新实例。但是为此您必须使用一些文档类编译外部SWF(您不必创建.as文件,只需为此SWF键入一些命名空间)
var movieType:Class = myMovieClip.constructor;
var copyMovie:MovieClip = new movieType();
答案 1 :(得分:2)
http://www.dannyburbol.com/2009/01/movieclip-clone-flash-as3/
http://www.smithmediafusion.com/blog/?p=446
或强>
btn1_btn.addEventListener(MouseEvent.CLICK, btnClicked);
function btnClicked(e:MouseEvent):void{
var btn:MovieClip = MovieClip(e.target);
//duplicate the movielcip (add a new one to the stage)
var ClassDefinition:Class = Class(getDefinitionByName(getQualifiedClassName(btn)));
var myMC:MovieClip = new ClassDefinition;
//add it to the container
myMC.x = randInt(0,260);
myMC.y = 0;
gravity_mc.addChild(myMC);
}
function randInt(min:int, max:int):int{
return Math.round(Math.random() * (max - min) + min);
}