纯AS3项目的预加载

转自:http://blog.163.com/jtyp_2000/blog/static/9910426201172603448553/



原理:

在SDK的编译参数中加入-frames.frame [label] [className]添加第二帧
这样实现自加载就是FLASH中常用的2帧法了。

示例:

PreloaderDemo.as

  1. package    
  2. {      
  3.     import flash.display.DisplayObject;   
  4.     import flash.display.MovieClip;   
  5.     import flash.events.Event;   
  6.     import flash.events.ProgressEvent;   
  7.     import flash.utils.getDefinitionByName;   
  8.   
  9.     /**        
  10.      * 预加载类 程序从这里开始  
  11.      * @author Jing   
  12.      */    
  13.        
  14.     public class PreloaderDemo extends MovieClip           
  15.     {      
  16.         public function PreloaderDemo()                
  17.         {          
  18.             loaderInfo.addEventListener(ProgressEvent.PROGRESS,progress);              
  19.             loaderInfo.addEventListener(Event.COMPLETE,complete);     
  20.         }     
  21.            
  22.         //显示进度         
  23.         private function progress(e:ProgressEvent):void                
  24.         {     
  25.             trace(e.bytesLoaded / e.bytesTotal);               
  26.         }     
  27.            
  28.         private function complete(e:Event):void                
  29.         {     
  30.             loaderInfo.removeEventListener(ProgressEvent.PROGRESS,progress);               
  31.             loaderInfo.removeEventListener(Event.COMPLETE,complete);     
  32.                
  33.             gotoAndStop(2);     
  34.                
  35.             var mainClass:Class = Class(getDefinitionByName("MainDemo"));     
  36.                
  37.             stage.addChild(new mainClass() as DisplayObject);   
  38.                
  39.             parent.removeChild(this);              
  40.         }     
  41.     }     
  42. }  
  43. MainDemo.as
    1. package  
    2. {   
    3.     import flash.display.Sprite;   
    4.   
    5.     public class MainDemo extends Sprite   
    6.     {   
    7.         //嵌入一个文件以显示加载效果     
    8.         [Embed(source="SQL006_ch9.wma", mimeType="application/octet-stream")]   
    9.         private var SomeClass:Class;   
    10.   
    11.         public function MainDemo()   
    12.         {   
    13.   
    14.         }   
    15.     }   
    16. }   
    17. 编译参数:

      -locale zh_CN -use-network=false -frame MainDemo MainDemo  

      重点是加粗红色部分,将MainDemo类作为程序的第二帧进去

      -frames.frame FrameTwoClass FrameTwoClass


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值