In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: [質問です]LoaderをBitmapにする方法について

Loaderで読み込んだ画像をBitmapにする方法がわかりません?
いろんな方のサイトを拝見して、同じコードを書いたのですが、表示されませんでした。
最終的にはドットが集まって、画像を描くというのを作りたいと思っています。
初歩的な質問で申し訳ありませんが、よろしくお願いします。
そもそも、geocities.jp内のファイルを外部からアクセスしようとすると、
キャッシュがない場合、表示されません。リロードすれば表示されますが。
なので、geocities.jp上のファイルを読み込むのは、できないと考えた方が良いでしょう。

そこで、wonderfl.netのタイトルedit画面内にある画像upload機能を使って、
まず、画像をアップロードし、その画像の読み込みを行います。
しかし、この画像がアップロードされたサーバはassets.wonderfl.netで、
wonderfl.net, swf.wonderfl.net とは別サーバとみなされるので、
読み込んだ画像(Bitmap)のプロパティ等にアクセスしようとすると、
セキュリティサンドボックス侵害エラーが発生します。
なので、assets.wonderfl.netのcrossdomain.xmlを読み込む必要があります。
/**
 * Copyright ProjectNya ( http://wonderfl.net/user/ProjectNya )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/sz0e
 */

// forked from Tamanegi_kenshi's [質問です]LoaderをBitmapにする方法について
//Loaderで読み込んだ画像をBitmapにする方法がわかりません?
//いろんな方のサイトを拝見して、同じコードを書いたのですが、表示されませんでした。
//最終的にはドットが集まって、画像を描くというのを作りたいと思っています。
//初歩的な質問で申し訳ありませんが、よろしくお願いします。

/*
そもそも、geocities.jp内のファイルを外部からアクセスしようとすると、
キャッシュがない場合、表示されません。リロードすれば表示されますが。
なので、geocities.jp上のファイルを読み込むのは、できないと考えた方が良いでしょう。

そこで、wonderfl.netのタイトルedit画面内にある画像upload機能を使って、
まず、画像をアップロードし、その画像の読み込みを行います。
しかし、この画像がアップロードされたサーバはassets.wonderfl.netで、
wonderfl.net, swf.wonderfl.net とは別サーバとみなされるので、
読み込んだ画像(Bitmap)のプロパティ等にアクセスしようとすると、
セキュリティサンドボックス侵害エラーが発生します。
なので、assets.wonderfl.netのcrossdomain.xmlを読み込む必要があります。
*/


package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.PixelSnapping;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.events.Event;
    //
    import flash.system.Security;
   
    public class FlashTest extends Sprite {
        private var file:String = "http://assets.wonderfl.net/images/related_images/d/d4/d4a5/d4a53f43b7514733c085eec1f3c775c111e5e991";
   
        public function FlashTest() {
            init();
        }//FrashTest
        
        private function init():void{
            Security.allowDomain("assets.wonderfl.net");
            Security.loadPolicyFile("http://assets.wonderfl.net/crossdomain.xml");
            //
            var my_load:Loader=new Loader();
            var my_url:URLRequest=new URLRequest(file);
            my_load.load(my_url);
            my_load.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
        }
        //ロードが終了後のイベント
        private function onComplete(event:Event):void{
            var content:Bitmap = event.target.content;
            var my_bmd:BitmapData=new BitmapData(content.width, content.height);
            my_bmd.draw(content);
            var my_bm:Bitmap = new Bitmap(my_bmd);
            addChild(my_bm);
        }//onComplete
    
      

    }//class
}//package