ムービークリップのコピー

by fakestar0826
FDで同じことするとエラー出る。。。
ソースの一部は、
http://level0.kayac.com/2009/02/as3duplicatemovieclip.php
から拝借。

(追記)
こおいうことなのね。↓↓
http://sipo.jp/blog/2010/10/as3duplicatemovieclip.html
♥0 | Line 38 | Modified 2011-02-04 14:46:03 | MIT License
play

ActionScript3 source code

/**
 * Copyright fakestar0826 ( http://wonderfl.net/user/fakestar0826 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/vWP5
 */

package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            // write as3 code here..
            //↓↓_level0.Kayacから拝借。
            //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);
        }
    }
}

import flash.events.MouseEvent;
import flash.display.MovieClip;

class Circle extends MovieClip
{
    public function Circle()
    {
        graphics.beginFill(Math.random() * 0xFFFFFF);
        graphics.drawCircle(0, 0, 30);
        graphics.endFill();
        
        addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
        addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
    }
    
    private function onMouseDown(e:MouseEvent):void
    {
        this.startDrag();
    }
    
    private function onMouseUp(e:MouseEvent):void
    {
        this.stopDrag();
    }

}

Forked