AS3でduplicateMovieClipできちゃう?
as3からMovieClipのメソッドからduplicateMovieClipがなくなってしまいましたね。 手軽にMovieClipの複製ができないなーと思って、へこんでいたんですが。。。
代わりとなるような方法を紹介してみます。 手順は以下のようになります。
Objectクラスにはクラスオブジェクトへの参照であるconstructorというプロパティがあります。
クラスへの参照がとれるということは・・・・。
これでnewしちゃえばいいんじゃ!?
やってみます。
//MovieClipを継承したCircleクラスのインスタンスを生成 var circle:MovieClip = new Circle(); circle.x = stage.stageWidth / 2; circle.y = stage.stageHeight / 2; this.addChild(circle); //circleのクラスオブジェクトへの参照を取得 var itemClass:Class = circle.constructor; //クラスオブジェクトをつかって新しいインスタンスを作成 var copyItem:* = new itemClass(); copyItem.x = stage.stageWidth / 2; copyItem.y = stage.stageHeight / 2; this.addChild(copyItem);
これでできるのでは???
下のSWFでは複製ボタンを押すごとに上記のようにクラスオブジェクトへの参照から、新しいインスタンスを生成しています。
できましたねー!
これは結構つかえそうです!ではでは。