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>
分享到:
相关推荐
通过以上步骤,你已经学会了如何在Flash ActionScript3中实现影片剪辑加载网络图片。这只是一个基础的示例,实际应用中还可以根据需求进行更复杂的操作,例如预加载、图片缓存、进度条显示等。记住,实践是最好的...
8. **StageVideo 或 Loader 类**:如果进度条与视频加载或图片加载相关,那么`StageVideo`和`Loader`类会用于处理多媒体内容的加载进度。 9. **错误处理**:良好的错误处理是任何项目的关键。通过`ErrorEvent`,...
首先,我们需要了解Flash中的两种主要的图片加载方式:使用Loader类和使用BitmapData类。Loader类是ActionScript 3.0中用于加载图形内容的主要工具,包括图片、SWF文件等。BitmapData类则用于处理位图数据,它可以...
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 ...
8. **资源管理**:游戏往往包含大量的图片、音频和XML数据,使用Loader类可以加载和管理这些资源。 9. **游戏设计模式**:如单例模式用于管理全局资源,工厂模式用于动态创建对象,观察者模式用于事件处理等。 10....
在图片加载场景中,我们首先创建一个Loader对象,然后使用它的load()方法指定要加载的图像资源URL。 例如,以下是一个简单的动态加载图片的代码片段: ```actionscript // 创建Loader对象 var loader:Loader = new...
- **加载外部资源**:利用URLLoader和XMLSocket类加载XML、文本或图片等数据。 - **XML操作**:解析和操作XML数据,实现数据交换。 7. **错误处理** - **异常处理**:学习如何使用try...catch语句处理运行时错误...
- **功能**: 用于将另一个SWF文件或图片动态加载到当前的Flash电影中,可以实现动态加载内容的效果。 #### 9. `Unload Movie` 卸载影片 - **函数**: `unloadMovie(level/target)` - **参数**: - `level/target`...
1. **加载过程**:在Flash中,当内容如SWF文件、图片或视频需要从网络加载时,加载过程会分为几个阶段:初始化、加载数据、解析数据和完成。开发者可以利用这些阶段来创建进度条或动态效果。 2. **ActionScript**:...
本案例聚焦于如何利用Flash技术来加载并展示Word文档,提升用户体验,尤其是在网络环境下的内容呈现。以下是关于这个主题的详细解释: 一、Flash简介 Flash是由Adobe公司开发的一种多媒体创作工具,它主要用于创建...
5. 显示图片:图片加载完成后,`Event.COMPLETE`事件会再次触发。此时,我们可以将加载到的`Bitmap`对象添加到舞台或者一个显示列表的容器中。 这个示例可能还包含了其他加载和显示图片的方法,例如使用`Sprite...
// 所有图片加载完成后,开始播放序列图... } ``` 6. **显示和控制序列图**:在播放序列图时,我们需要维护一个当前帧的索引,并根据用户的鼠标交互更新这个索引,然后显示对应的图片。 ```actionscript function...
一、图片加载 在Flex中,我们可以使用`mx.controls.Image`组件来加载图片。首先,在.mxml文件中添加`<mx:Image>`标签,并设置其`source`属性为图片的URL或数据URL。例如: ```xml ('path/to/your/image.png')"/> ``...
游戏资源如图片、音频、动画片段等会被分解为多个部分,用户可以先看到游戏的基本框架,随着网络数据的持续下载,游戏内容逐渐丰富。 3. **预加载器**:预加载器是加载过程中的一个重要组件,它负责在游戏开始前...
在ActionScript中,代理模式可用于控制显示对象的访问,例如在加载大图时先显示占位符,待图片完全加载后再替换。 6. **策略模式**:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。策略模式让...
在实际应用中,开发者还需要考虑到不同分辨率和网络环境的影响,确保图片加载快速且适应不同屏幕尺寸。此外,由于Flash在现代网页中的使用逐渐减少,现在更常见的是使用HTML5的Canvas或WebGL技术来实现类似的功能,...
ActionScript3.0是Adobe Flash Platform中的编程语言,主要用于创建互动式内容、应用程序以及网络上的动画。在本主题“ActionScript3.0动态广告”中,我们将深入探讨如何利用这一强大的脚本语言来构建引人注目的动态...
8. **网络通信**:如果游戏需要在线多人协作,ActionScript可以使用Socket或URLLoader类进行数据交换,实现网络通信。 9. **游戏逻辑**:游戏规则、AI(人工智能)、分数系统等都是游戏逻辑的一部分,通常在游戏...
9. **优化策略**:根据网络条件和用户行为,可以采用不同的优化策略,比如预加载部分图片,或者在用户交互时才开始加载。 10. **显示对象树**:将加载的 BitmapData 显示在舞台上,通常会创建一个 Bitmap 对象,将 ...
在这个文件中,开发者可能已经编写了处理图片加载、缓冲和滚动逻辑的ActionScript代码。ActionScript是Flash平台上的编程语言,用于实现交互性和动态功能。如果你对Flash或ActionScript有基础,可以通过打开`...