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>
分享到:
相关推荐
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 ...
和 模板模式实现的一套 适量动画 & 帧动画 播放解决方案 -> cache 加载资源缓存 用于读取外部图片 包含外部图片加载器(使用远程代理模式 不用等图片加载完成即可 把容器预先加载到场景中 并可定义一些属性) -> ...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 1.3节.创建ActionScript项目 1.4节.在FlexBuilder中设置MXML编译器选项 1.5节.在FlexBuilder外部编译Flex...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...