• 网站各类资源预加载类(preLoader1.0 as3版) [返回文章列表]     发表于: 2009-2-17  672人(次)浏览
  • 网站各类资源预加载类(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

网站各类资源预加载类(preLoader1.0 as3版) [返回文章列表]