forked from: Event.COMPLETE使えば、アップロードした画像はBitmap化でき...できない?

by iong forked from Event.COMPLETE使えば、アップロードした画像はBitmap化でき...できない? (diff: 62)
naoto5959さんの解説でcrossdomain勉強できました
crossdomainってロード可能/不可能ってことじゃなかったんすね。。
http://wonderfl.net/code/c0f6239b461627bce45e71a84a3d21731de1db43
♥0 | Line 46 | Modified 2009-09-01 15:12:12 | MIT License
play

ActionScript3 source code

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

// forked from coppieee's Event.COMPLETE使えば、アップロードした画像はBitmap化でき...できない?
// forked from Nicolas's アップロードした画像はBitmap化できない?
// forked from Nicolas's Wonderflで使いたい画像を簡単にアップロード


// naoto5959さんの解説でcrossdomain勉強できました
// crossdomainってロード可能/不可能ってことじゃなかったんすね。。
// http://wonderfl.net/code/c0f6239b461627bce45e71a84a3d21731de1db43


package {
    import flash.display.Sprite;
    import flash.display.Loader;
	import flash.events.ProgressEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.events.Event;
    import flash.system.LoaderContext;

[SWF(width="465", height="465", backgroundColor="0xffffff")];    
    public class FlashTest extends Sprite {
        public var bmp:Bitmap;
        public var bmd:BitmapData;
        public var loader:Loader;

        public function FlashTest() {
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, act);
            if(stage) init();
//addChild(loader); // ok
        }

        private function init():void
        {
            var url:String = "http://wonderfl.net/static/tmp/related_images/7631be20fea2b992f1193ca6319abfc716fe388am";
            var urlReq:URLRequest = new URLRequest(url);
//            loader.load(urlReq);
//addChild(loader); // ok
            loader.load(urlReq, new LoaderContext(true));
        }

        private function act(e:Event):void
        {
            // test1
            var tmp:Loader= e.currentTarget.loader;
//            addChild(tmp); // ok
//            addChild(loader); // ok

            // test2
            bmd = new BitmapData(100, 100, true, 0x000000);
            bmd.draw(tmp);
            bmp = new Bitmap(bmd);
            bmp.x = 100;
//            addChild(bmp); // ng (localではok)

            // test3
            var mc:Sprite = new Sprite();
            with(mc.graphics){
                beginFill(0x000000,1);
                moveTo(0,0);
                lineTo(100,0);
                lineTo(100,100);
                lineTo(0,100);
            }
            mc.addChild(bmp);
            addChild(mc); // ng (bmd.drawをescapeすると0x0のrectは出る)
        }
    }
}