Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2226935
  • 博文数量: 556
  • 博客积分: 11457
  • 博客等级: 上将
  • 技术积分: 5973
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 22:33
文章分类

全部博文(556)

文章存档

2013年(22)

2012年(74)

2011年(460)

分类: 系统运维

2011-07-01 20:48:04

FLV播放器是一种专用于播放FLV格式视频的播放器,FLV是时下最流行的播放格式,其特点是压缩比高、文件容量小、支持渐进式缓冲播放等。Flex4.0中的VideoDisplay组件专用于播放Flv格式视频。
一、前期准备
1.组织文件结构:
    图1(FLV播放器文件的组织结构)
 
2.导入Cairngorm框架
 
二、使用FlvModel类存储数据、状态及资源
FlvModel类继承与Cairngorm框架的ModelLocator,用以存储数据状态和资源,例如,当前播放的视频地址、是否为全频状态、图片资源等都存储于FlvModel类中。以下代码定义了FlvModel类。
  1. package com.xi.flvPlayer.model
  2. {
  3.     import com.adobe.cairngorm.model.ModelLocator;
  4.     import mx.controls.ToolTip;
  5.     
  6.     public class FlvModel implements ModelLocator
  7.     {
  8.         private static var flvModel:FlvModel=new FlvModel(); //定义FlvModel类实例flvModel
  9.         
  10.         public static function getInstance():FlvModel{ //获得FlvModel类的实例
  11.             return flvModel;
  12.         }
  13.         
  14.         public static var currVideo:String=""; //当前视频播放地址
  15.         public static var videoSource:String=""; //将要加载的视频地址
  16.         public static var isFullScreen:Boolean=false; //是否全屏状态
  17.         
  18.         /*---------------------------------图标资源----------------------------------*/
  19.         [Bindable]
  20.         [Embed(source="/assets/images/btn_moveover_break.png")]
  21.         public var btn_moveover_break:Class;
  22.         
  23.         [Bindable]
  24.         [Embed(source="/assets/images/btn_moveover_fullscreen.png")]
  25.         public var btn_moveover_fullscreen:Class;
  26.         
  27.         [Bindable]
  28.         [Embed(source="/assets/images/btn_moveover_play.png")]
  29.         public var btn_moveover_play:Class;
  30.         
  31.         [Bindable]
  32.         [Embed(source="/assets/images/btn_moveover_stop.png")]
  33.         public var btn_moveover_stop:Class;
  34.         
  35.         [Bindable]
  36.         [Embed(source="/assets/images/btn_normal_break.png")]
  37.         public var btn_normal_break:Class;
  38.         
  39.         [Bindable]
  40.         [Embed(source="/assets/images/btn_normal_fullscreen.png")]
  41.         public var btn_normal_fullscreen:Class;
  42.         
  43.         [Bindable]
  44.         [Embed(source="/assets/images/btn_normal_play.png")]
  45.         public var btn_normal_play:Class;
  46.         
  47.         [Bindable]
  48.         [Embed(source="/assets/images/btn_normal_stop.png")]
  49.         public var btn_normal_stop:Class;
  50.         
  51.         [Bindable]
  52.         [Embed(source="/assets/images/ico_break.png")]
  53.         public var ico_break:Class;
  54.     }
  55. }
static关键字表示静态变量。静态变量可直接存取,其他变量需要实例化后才能存取。以下代码存取FlvModel
类中的变量currVideo和btn_normal_play.
import com.xi.flvPlayer.model.*;
FlvModel.currVideo="34324";
t=FlvModel.getInstance().btn_normal_play;
 
三、使用FlvControl类监听事件
FlvControl类继承与Cairngorm框架的FrontControl类,用于监听CairngormEvent事件。习惯上,CairngormEvent事件的标识符字符串也都存储于前台控制器中。
以下代码定义了FlvControl类:
  1. package com.xi.flvPlayer.control
  2. {
  3.     import com.adobe.cairngorm.control.FrontController;
  4.     import com.xi.flvPlayer.commands.*;
  5.     public class FlvControl extends com.adobe.cairngorm.control.FrontController
  6.     {
  7.         public function FlvControl():void //构造函数
  8.         {
  9.             initialiseCommands();
  10.         }
  11.         
  12.         public function initialiseCommands():void{
  13.             addCommand(FlvControl.EVENT_OPEN_VIDEO,OpenVideoCommand);
  14.         }
  15.         
  16.         public static var EVENT_OPEN_VIDEO:String="openVideo"; //定义openVideo标识
  17.     }
  18. }
未完待续。。。
项目源码:
阅读(998) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~