2

クラスに Image メンバー変数があります。myImage.source(url) を設定できます。その画像が displayList に追加されると、画像の BitmapData を取得できます。

しかし、ディスプレイに myImage を追加するつもりはありません。Bitmap/BitmapData を作成してから、後の段階でその Image オブジェクトへの参照を使用したいと考えています。

これは基本的に私が試みていることです。

var urlString:String = "file:///C:/assets/images/logo.png";
myImage.source = urlString;
// Only after its added to the stage does it get created as an image so that i can 
// access Bitmap data
this.addChild(myImage);
// I want to replicate this in ActionScript, without displaying it at this point

私は多くのことを試しましたが、すべての例は最初に displayList に追加される Image に依存しています。この投稿は、最初のリゾートではなく、最後のリゾートになりました!! :-) ブライアン

アップデート:

最初にローダーで画像をロードする必要がありました。これを回避する方法が見つかりませんでした。

アプリケーション内の画像間で共有するための単一の参照として BitmapData を使用するだけです。ただし、Flash Player 10.1 および AIR 2.5 では、同じ BitmapData を使用する複数の Bitmap オブジェクトの作成に関するパフォーマンスが強化されています ( http://help. adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ff9.html

私がしたことの例:

private var myBitmapData:BitmapData;

            protected function creationCompleteHandler(event:FlexEvent):void
            {
                var urlString:String = "file:///C:/assets/images/client_logo.png";

                var req:URLRequest = new URLRequest(urlString);
                var ldr:Loader = new Loader();
                ldr.load(req); 
                ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoadComplete);
                ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);               
            }

            private function onIOError(event:IOErrorEvent):void{
                trace(event.text);
            }

            private function fileLoadComplete(event:Event):void
            {
                var ldr:Loader = Loader(event.target.loader);
                var bitmap:Bitmap = Bitmap(ldr.content);
                myBitmapData = bitmap.bitmapData;

                displayImage1.source = new Bitmap(myBitmapData);        
                displayImage2.source = new Bitmap(myBitmapData);
            }
4

0 に答える 0