Flex load Image from Network

在Flex中需要加载网络图片时(jpg,png,gif等)可以使用URLLoader的相关方法,具体代码如下:


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="application1_creationCompleteHandler(event)">
	<fx:Script>
		<![CDATA[
			import mx.controls.Image;
			import mx.events.CloseEvent;
			import mx.events.FlexEvent;
			import mx.managers.PopUpManager;
			
			import spark.components.Scroller;
			import spark.components.TitleWindow;
			import spark.components.VGroup;
			import spark.layouts.HorizontalLayout;
			
			private var imgWin:TitleWindow;
			private var urlLoader:URLLoader = new URLLoader();

			
			protected function application1_creationCompleteHandler(event:FlexEvent):void
			{
				var urlReq:URLRequest = new URLRequest("http://www.baidu.com/img/bdlogo.gif");
				urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
				urlLoader.load(urlReq);
				urlLoader.addEventListener(Event.COMPLETE, completeHandler);
			}
			
			private function completeHandler(event:Event):void {
				var fileName:String = "远程图片";
				imgWin = new TitleWindow();
				var layout:HorizontalLayout = new HorizontalLayout();
				layout.horizontalAlign = "center";
				layout.verticalAlign = "middle";
				imgWin.layout = layout;
				imgWin.addEventListener(CloseEvent.CLOSE,function():void{
					PopUpManager.removePopUp(imgWin);
				});
				imgWin.width = 800;
				imgWin.height = 480;
				imgWin.title = fileName;
				var img:Image = new Image();
				img.source = urlLoader.data;
//				这里使用 img.load(urlLoader.data);也可以
				img.name = fileName;
				img.addEventListener(Event.COMPLETE,onImageLoadComplete);
				var scroller:Scroller = new Scroller();
				scroller.percentHeight = 100;
				scroller.percentWidth = 100;
				var g:VGroup = new VGroup();
				g.horizontalAlign = "center";
				g.verticalAlign = "middle";
				g.addElement(img);
				scroller.viewport = g;
				imgWin.addElement(scroller);
			}
			
			private function onImageLoadComplete(e:Event):void{
				var img:Image = e.currentTarget as Image;
				//				Alert.show('img width:'+img.width+',height:'+img.height+','+img.contentWidth+","+img.contentHeight);
				imgWin.width = img.contentWidth <= 750 ? 800 : (img.contentWidth+50);
				imgWin.height = img.contentHeight <= 430 ? 480 : (img.contentHeight+50);
				//				imgWin.title = img.name;
				PopUpManager.addPopUp(imgWin, this, true);
				PopUpManager.centerPopUp(imgWin);
			}

		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
</s:Application>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值