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 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值