Flex加载一张图片多处施用
Flex加载一张图片多处使用
用Flex加载一张图片,在界面上的多处显示,例:
package service { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLRequest; import flash.system.Security; import mx.core.Application; import mx.core.UIComponent; /** * 图片加载类。<BR> */ public class ImageLoader { // 请求用 private var mRequest:URLRequest; // 加载用 private var mLoader:Loader /** * 构造函数。<BR> */ public function ImageLoader() { mRequest = new URLRequest(); mLoader = new Loader(); mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete); mLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); } /** * 设定URL。<BR> */ public function setUrl(url:String):void { Security.allowDomain(url); mRequest.url = url; } /** * 加载图片。<BR> */ public function load():void { mLoader.load(mRequest); } /** * 加载完成的处理。<BR> */ private function onLoadComplete(event:Event):void { trace("Load Complete"); var bmd:BitmapData = Bitmap(event.currentTarget.content).bitmapData; loadImage1(bmd.clone()); loadImage2(bmd.clone()); } /** * IO错误发生的处理。<BR> */ private function onIOError(event:Event):void { trace("IO Error"); } /** * 加载Image1。<BR> */ private function loadImage1(bmd:BitmapData):void { var ui:UIComponent = new UIComponent(); var bmp:Bitmap = new Bitmap(bmd); bmp.width = 400; bmp.height = 200; ui.addChild(bmp); Application.application.image1.addChild(ui); } /** * 加载Image2。<BR> */ private function loadImage2(bmd:BitmapData):void { var ui:UIComponent = new UIComponent(); var bmp:Bitmap = new Bitmap(bmd); bmp.width = 400; bmp.height = 200; ui.addChild(bmp); Application.application.image2.addChild(ui); } } }
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import service.ImageLoader; private var loader:ImageLoader; /** * 初始化。<BR> */ private function init():void { loader = new ImageLoader(); loader.setUrl(""); loader.load(); } ]]> </mx:Script> <!-- GUI --> <mx:Label x="57" y="8" text="Image 1"/> <mx:Canvas id="image1" x="57" y="34" width="370" height="200"> </mx:Canvas> <mx:Label x="57" y="260" text="Image 2"/> <mx:Canvas id="image2" x="57" y="286" width="370" height="200"> </mx:Canvas> </mx:Application>
注意:设置自己的图片url。(图片格式:jpg,png)不能为bmp