`
jakielong
  • 浏览: 223476 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ActionScript 网络图片加载

    博客分类:
  • Flex
阅读更多

 

package {
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.MouseEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.text.TextField;
	import flash.display.DisplayObject;
	
	
	[SWF(width="500",height="300",frameRate="20",backgroundColor="#FFFFFF")]
	public class ImageLoader extends Sprite
	{
		private var loaderIndex:int = 0;
		private var showIndex:int = 0;
		private var imageList:XMLList;
		private var sucImageCount:int = 0;
		private var txt:TextField;
		
		public function ImageLoader()
		{
			txt = new TextField();
			txt.selectable = false;
			txt.text = "LoadingXML配置文件";
			this.addChild(txt);
			
			var loader:URLLoader = new URLLoader();
			var request:URLRequest = new URLRequest("image.xml");
			loader.addEventListener(Event.COMPLETE,onLoadComplete);
			loader.load(request);
		}
		
		private function onLoadComplete(event:Event):void
		{
			var lder:URLLoader = event.target as URLLoader;
			var xml:XML = new XML(lder.data);
			trace("XML数据已经载入");
			imageList = xml.image;
			loadImage();
		}
		
		private function loadImage():void
		{
			var url:String = imageList[loaderIndex].@url;
			var urlRequest:URLRequest = new URLRequest(url);
			var loader:Loader = new Loader();
			trace("load image from url "+url);
			txt.text = "正在载入图片("+(sucImageCount+1)+"/"+imageList.length()+")";
			loader.load(urlRequest);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onImageLoadComplete);
			loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onError);
		}
		
		private function onError(event:IOErrorEvent):void
		{
			trace("load error");
			loaderIndex++;
			loadImage();
		}
		
		private function onImageLoadComplete(e:Event):void
		{
			var img:LoaderInfo = e.target as LoaderInfo;
			img.content.visible = false;
			this.addChild(img.content);
			if (loaderIndex<imageList.length()-1)
			{
				sucImageCount++;
				loaderIndex++;
				trace("load success");
				loadImage();
			}
			else
			{
				this.removeChild(txt);
				this.stage.addEventListener(MouseEvent.CLICK,showNextImage);
				showNextImage(null);
			}
		}
		
		private function showNextImage(e:MouseEvent):void
		{
			trace("showNextImage");
			var img:DisplayObject = this.getChildAt(showIndex);
			if (img.visible==false)
			{
				img.visible = true;
				return ;
			}
			else
			{
				img.visible = false;
			}
			if (showIndex<this.numChildren-1) showIndex++;
			else showIndex=0;
			img = this.getChildAt(showIndex);
			img.visible = true;
		}
	}
}

 image.xml

<images>
	<image url="http://www.google.cn/intl/zh-CN/images/logo_cn.gif"/>
	<image url="http://www.baidu.com/img/baidu_logo.gif"/>
	<image url="http://cn.yimg.com/i/onesearch/1210/oms_001.gif"/>
	<image url="http://statics.verycd.com/images/logo.png"/>
	<image url="http://img.gougou.com/image/rank/logo2.png"/>
</images>
 

 

分享到:
评论

相关推荐

    ActionScript开发技术大全

    13.4网络图片加载器示例 295 13.5小结 298 第14章正则表达式与字符串匹配 299 14.1正则表达式概述 299 14.2正则表达式语法 300 14.2.1创建对象 300 14.2.2字符、元字符与元序列 301 14.2.3字符集 306 14.2.4组 307 ...

    as3-framework:as3客户端框架

    和 模板模式实现的一套 适量动画 & 帧动画 播放解决方案 -&gt; cache 加载资源缓存 用于读取外部图片 包含外部图片加载器(使用远程代理模式 不用等图片加载完成即可 把容器预先加载到场景中 并可定义一些属性) -&gt; ...

    java开源包5

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    flex3的cookbook书籍完整版dpf(包含目录)

    第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 1.3节.创建ActionScript项目 1.4节.在FlexBuilder中设置MXML编译器选项 1.5节.在FlexBuilder外部编译Flex...

    Java资源包01

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java开源包1

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包11

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包2

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包3

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包6

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包10

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包4

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包8

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包7

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包9

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包101

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

Global site tag (gtag.js) - Google Analytics