论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

FLVStream类-检测flv文件类型的工具类

文章类别:Flash AS编程 | 发表日期:2008-10-6 17:43:20


[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等其他文件类型了。只要知道文件头的特征信息就可以了。

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058