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

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

そこで、別の外部サーバ(www.project-nya.jp)から画像の読み込みを行いますが、
この場合、読み込んだ画像(Bitmap)のプロパティ等にアクセスしようとすると、
セキュリティサンドボックス侵害エラーが発生するので、
crossdomain.xmlを外部サーバに設置する必要があります。
♥0 | Line 31 | Modified 2010-08-11 11:29:26 | MIT License
play

ActionScript3 source code

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

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

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

そこで、別の外部サーバ(www.project-nya.jp)から画像の読み込みを行いますが、
この場合、読み込んだ画像(Bitmap)のプロパティ等にアクセスしようとすると、
セキュリティサンドボックス侵害エラーが発生するので、
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://www.project-nya.jp/images/flash/piyo.png";
   
        public function FlashTest() {
            init();
        }//FrashTest
        
        private function init():void{
            Security.allowDomain("www.project-nya.jp");
            Security.loadPolicyFile("http://www.project-nya.jp/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