当前位置:主页>FLASH AS 编程>AS基础篇>AS 3.0>文章内容
  • FLVStream类-检测flv文件类型的工具类
  • 来源:klstudio.com 作者: 2007-09-29 【

[AS3]FLVStream类-检测flv文件类型的工具类
    本类是利用flv文件头特征信息来判断文件的真实类型是否为flv文件,不是原来简单地通过文件扩展名来判断了。
MediaEvent类-FLVStream用到的事件类

  1. /**  
  2. * ...  
  3. * @author Kinglong  
  4. * @version 0.1  
  5. */  
  6.   
  7. package com.klstudio.media {   
  8.        
  9.     import flash.events.Event;   
  10.        
  11.     public class MediaEvent extends Event{   
  12.            
  13.         public static const FLV:String = "flv";   
  14.         public static const ERROR:String = "error";   
  15.            
  16.         public function MediaEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false){   
  17.             super(type, bubbles, cancelable);   
  18.         }          
  19.   
  20.     }   
  21.        
  22. }  

 

FLVStream类

  1. /**  
  2. * ...  
  3. * @author Kinglong  
  4. * @version 0.1  
  5. */  
  6.   
  7. package com.klstudio.media {   
  8.        
  9.     import flash.net.URLStream;   
  10.     import flash.net.URLRequest;   
  11.     import flash.events.*;     
  12.     import flash.utils.ByteArray;   
  13.        
  14.     import com.klstudio.util.StringUtil;   
  15.        
  16.     [Event(MediaEvent.FLV)]   
  17.        
  18.     public class FLVStream extends URLStream {   
  19.         private var _hasClose:Boolean;   
  20.         private var _bytes:ByteArray;   
  21.         private var _flv:Boolean;   
  22.         private var _url:String;   
  23.         public function FLVStream(url:String,close:Boolean=true):void {   
  24.             _url = url;   
  25.             _flv = false;   
  26.             _bytes = new ByteArray();   
  27.             _hasClose = close;               
  28.             addEventListener(ProgressEvent.PROGRESS, progressHandler);   
  29.         }   
  30.            
  31.         public function read():Boolean{            
  32.             if(_url == null || StringUtil.trim(_url).length== 0){   
  33.                 return false;   
  34.             }else{   
  35.                 try{   
  36.                     var request:URLRequest = new URLRequest(_url);   
  37.                     load(request);                     
  38.                 }catch(error:Error){   
  39.                     return false;   
  40.                 }   
  41.             }   
  42.             return true;   
  43.         }   
  44.            
  45.         private function progressHandler(event:ProgressEvent):void{   
  46.             if(bytesAvailable >= 3){   
  47.                 readBytes(_bytes,0,3);   
  48.                 _flv = _bytes.readUTFBytes(3).toLocaleUpperCase() == "FLV";    
  49.                 dispatchEvent(new MediaEvent(MediaEvent.FLV));   
  50.                 if(_hasClose){   
  51.                     close();   
  52.                 }   
  53.                 removeEventListener(ProgressEvent.PROGRESS, progressHandler);   
  54.             }   
  55.         }   
  56.   
  57.            
  58.         public function isFlvFile():Boolean{   
  59.             return _flv;   
  60.         }   
  61.   
  62.     }   
  63.        
  64. }  

FLVStream调用实例

  1. package project.test {     
  2.     import flash.display.*;        
  3.     import com.klstudio.media.*;   
  4.     public class Test10 extends Sprite{   
  5.         private var _fs:FLVStream;   
  6.         public function Test10(){   
  7.             _fs = new FLVStream("http://video-v1.9you.com/421b47ffd946ca083b65cd668c6b17e6/flv/o/v/ovo5b516b.flv");   
  8.             _fs.addEventListener(MediaEvent.FLV,flvHandler);   
  9.             _fs.read();   
  10.         }   
  11.            
  12.         private function flvHandler(event:MediaEvent):void{   
  13.             trace(_fs.isFlvFile());   
  14.         }   
  15.     }      
  16. }   

 当然同样的原理,也可以写一个用来检测swf等其他文件类型了。只要知道文件头的特征信息就可以了。





上一篇:Action Script 3.0 官方中文资料汇总   下一篇:AS3 定义function里的可选参数(参数默认值)
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
推荐内容
·AS3中文版帮助_chm
·as3编译器错误中文说明
·Flash CS3 AS3 doubleClick测试
FLASH源文件

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)