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 中。这篇文章现在更像是最后一个,而不是第一个,手段!!:-) 布赖恩

更新:

需要在开始时使用 Loader 加载图像。找不到解决方法。

我只是将 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