我在一个类中有一个 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);
}