Flex Preload写法(内嵌swf动画资源)

从新浪转载的一篇文章,作用应该是可以在FLASH在开始的时候显示那个加载的进度条的那种功能

转载地址:http://blog.sina.com.cn/s/blog_6b00c6a10100n0ck.html

package com.common.base
{
 import flash.display.Bitmap;
 import flash.display.Loader;
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.ProgressEvent;
 import flash.text.TextField;
 import flash.text.TextFormat;
 import flash.text.TextFormatAlign;
 import flash.utils.ByteArray;
 
 import mx.events.FlexEvent;
 import mx.preloaders.DownloadProgressBar;
 public class CommonDownloadProgressBar extends DownloadProgressBar
 {
   private var logo:Loader;
         private var _preloader:Sprite;
   
   private var _text:TextField;//显示进度文字
   
   private var _logWidth:int = 40;
   private var _logHeight:int = 40;
 
        
         [Embed(source='com/tomwell/asset/loading/Loading.swf',mimeType="application/octet-stream")]
         public var logImage:Class;
         public function CommonDownloadProgressBar ()  
         {  
    super();
          
    logo = new Loader();
             logo.loadBytes(new logImage() as ByteArray);
             addChild(logo);
 
             _text = new TextField();
    _text.width = 40;
             var txtFormat:TextFormat = new TextFormat("Arial",12,0xffffff,true);
    txtFormat.align = TextFormatAlign.CENTER;
             _text.defaultTextFormat = txtFormat;
             _text.selectable = false;
             addChild(_text);
    
         }
        
         //最重要的代码就在这里..重写preloader,让swf执行加载的时候~进行你希望的操作~  
         override public function set preloader(value:Sprite):void{  
             _preloader = value;
             //四个侦听~分别是 加载进度 / 加载完毕 / 初始化进度 / 初始化完毕  
             _preloader.addEventListener(ProgressEvent.PROGRESS,load_progress);  
             _preloader.addEventListener(Event.COMPLETE,load_complete);  
             _preloader.addEventListener(FlexEvent.INIT_PROGRESS,init_progress);  
             _preloader.addEventListener(FlexEvent.INIT_COMPLETE,init_complete);  
              
             stage.addEventListener(Event.RESIZE,resize)  
             resize(null);
            
         }
        
         private function remove():void{  
             _preloader.removeEventListener(ProgressEvent.PROGRESS,load_progress);  
             _preloader.removeEventListener(Event.COMPLETE,load_complete);  
             _preloader.removeEventListener(FlexEvent.INIT_PROGRESS,init_progress);  
             _preloader.removeEventListener(FlexEvent.INIT_COMPLETE,init_complete);  
             stage.removeEventListener(Event.RESIZE,resize)  
         }
        
         private function resize(e:Event):void{
   
             logo.x = (stage.stageWidth - _logWidth)/2;  
             logo.y = (stage.stageHeight - _logHeight)/2;
        
    _text.x = (stage.stageWidth - _logWidth)/2;
    _text.y = (stage.stageHeight + _logHeight)/2;
   
    graphics.clear();  
    graphics.beginFill(0x000000);  
    graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);  
    graphics.endFill();  
 
         }
        
         private function load_progress(e:ProgressEvent):void {
           var p:int = 0;
           p = Math.floor(e.bytesLoaded / e.bytesTotal * 100);
             _text.text = p + "%";
             
         }
        
         private function load_complete(e:Event):void{  
  
         }
        
         private function init_progress(e:FlexEvent):void{  
          
         }
        
         private function init_complete(e:FlexEvent):void{  
             remove();
             //最后这个地方需要dpe一个Event.COMPLETE事件..表示加载完毕让swf继续操作~  
             dispatchEvent(new Event(Event.COMPLETE));
         }

     }  
}

关于此博客还有一些比较好的文章,现在一一列出来供以后使用:

Flex使用JSON格式与Java通信:http://blog.sina.com.cn/s/blog_6b00c6a10100lnfy.html
FLV文件结构解析:http://blog.sina.com.cn/s/blog_6b00c6a10100lnfm.html
Youtube的技术实现:http://blog.sina.com.cn/s/blog_6b00c6a10100lnfo.html
Flash编写类及外部as文件的方式:http://blog.sina.com.cn/s/blog_6b00c6a10100lnfa.html
Flex 自定义Loading载入状态:http://blog.sina.com.cn/s/blog_6b00c6a10100lngt.html
关于RED5——配置文件详解:http://blog.sina.com.cn/s/blog_6b00c6a10100lnfr.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值