出现的问题:想加载外部位图图像,以BitmapData对象操作。
解决的办法:使用flash.display.Loader类来加载图像,当图像载入时,访问加载器的content属性,也就是Bitmap对象。访问Bitmap对象的bitmapData属性,就可以取得代表所载入的图像的BitmapData.
当通过Loader类,加载外部图像时,此外,还需要URLRequest对象以及要加入的图像的URL,来监听加载器的complete事件,可让你知道图像什么时候被加载完。
贴个例子
- package cn.sweetwatertang.pictransform {
- import flash.net.URLRequest;
- import flash.display.Loader;
- import flash.events.Event;
- import flash.display.Sprite;
- import flash.net.URLRequest;
- public class LoadPic extends Sprite
- {
- private var _loader:Loader = new Loader();
- public function LoadPic():void
- {
- _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
- _loader.load(new URLRequest("image.jpg"));
- }
- private function onComplete(event:Event):void
- {
- var image:Bitmap = Bitmap(_loader.content);
- var bitmap:BitmapData = image.bitmapData;
- addChild(image);
- }
- }
- }
- package cn.sweetwatertang.pictransform {
- import flash.net.URLRequest;
- import flash.display.Loader;
- import flash.events.Event;
- import flash.display.Sprite;
- import flash.net.URLRequest;
- public class LoadPic extends Sprite
- {
- private var _loader:Loader = new Loader();
- public function LoadPic():void
- {
- _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
- _loader.load(new URLRequest("image.jpg"));
- }
- private function onComplete(event:Event):void
- {
- var image:Bitmap = Bitmap(_loader.content);
- var bitmap:BitmapData = image.bitmapData;
- addChild(image);
- }
- }
- }
可以把载入的图像描绘到新的BitmapData对象里,然后进行显示。
- private function onComplete(event:Event):void
- {
- var loadedImage:Bitmap = Bitmap(_loader.content);
- //创建新的BitmapData,把载入的图像绘入
- var bitmap:BitmapData = new BitmapData(loadedImage.width,
- loadedImage.height,false,0xffffff);
- bitmap.draw(loadedImage,new Matrix());
- //使用BitmapData创建新的Bitmap然后进行显示
- var image:Bitmap = new