网站各类资源预加载类(preLoader1.0 as3版) 作者:yi 奥博瑞德互动设计
这个类的主要作用就是:
加快FLASH网站的浏览速度.
原理:利用浏览时的内存缓存和临时文件夹缓存,来达到预先下载的目的.
首先,M:swf被A:swf容器在下载完毕后,如果B:swf再次调用M,那么B将直接调用浏览缓存内的临时文件。
另外,当M下载到一半时,若终止M的加载,而加载另外一个N:swf,M已经被加载的部分并不会及时在内存中删除掉,而是会保留一段时间.
当N加载完毕后,继续返回调用M,则M将从已经加载完部分开始继续加载,而不是从0开始加载.
具体可以参考我在AS2版本里写的:
/artical_content.asp?id=162&classid=10
这些在AS3的世界里还是有效,所以改写了这个,于是有了这个类,并支持根据XML资源的任意多个节点排序下载,如果有时间我会再加上根据属性来排序,现在实在没时间。下面是详细的介绍:
类名:preLoader
com.ourbrander.webObj.loader
类说明:单例事件,如果全局范围内第二次声明此类的对象,抛出错误
构造函数:public function preLoader()
属性:
source
说明:
value:XML/String,值可以是XML或是XML的外部链接地址,类的对象会自动加载该外部XML,并发出事件加载完成的事件,以供使用者自行控制何时开始预加载。
例:
var p=new preLoader()
p.source=""
或:p.source="xml/preload.xml"
public static canpreLoad value:Boolean
说明:可以控制是否允许预加载类进行预加载,是静态属性可直接设置
例:
preLoader.canpreLoad=true preLoader.canpreLoad=false
方法:
startLoad()
说明:控制预加载类的开始下载
排序: 请查看这个XML序列化类的方法:/artical_content.asp?id=244&classid=21
使用方法:
preloader.source.sortOn([e.target.xml.child(0).@ord,Array.DESCENDING])这个暂时只支持节点名称,以后会升级到支持属性的,使用时如果需要排序可以写个合适的XML结构即可。
静态方法:userLoading
preLoader.userLoading=false
设置为否,则会发出USERLOADING 事件,使预加载暂停
preLoader.userLoading=true
设置为真,则会发出USERLOADING 事件,如果允许预加载运行则会继续预加载
事件:
public static const COMPELETE = "compelete"
说明:所有的资源都已经下载完毕
public static const PUASE = "puase"
说明:预加载被暂停
public static const STOP = "stop"
说明:预加载被停止
public static const USERLOADING = "userLoading"
说明:用户正在主动下载文件(通过此事件可使预加载暂停)
public static const USERCOMPELETE = "userCompelete"
说明:用户主动下载文件的动作已经完成(通过此事件可使预加载继续)
几种用法的简要例子代码:
当数据源XML自身下载完后可侦听此事件:
preloader.source.addEventListener(Event.COMPLETE, preLoadList_lded)
说明:所有的资源都已经下载完毕
preloader.source.addEventListener(preLoader.COMPELETE,allLoaded)
效果:/demo/as3/preloader.htm
例子以及源代码:/download/preloader1.0_as3.rar