Model(模型)块的作用是处理事务,它负责所有的数据处理.它根据Controller传递来的事件类型就行实际的操作,并把数据传递给View以给出合适的视图显示.在jw flv player中,Model块的作用是管理媒体对象.
AbstractModel
该类的属性:
- registeredViews:保存视图实例,以便向它发送更新消息.
- controller:控制器
- congfig:设置参数
- feeder:管理播放列表
- currentItem:当前播放对象的索引
- currentURL:当前播放对象的路径
- mediatypes:文件类型
- isActive:指示当前模型是否处于活动状态
- currentPosition:播放头的位置
AbstractModel类的方法:
- AbstractModel:构造函数,主要作用是对registeredViews,controller,config,feeder赋值
- getChange:公有属性.用来从Controller获得变动信息.它主要接收:item,start,pause,stop,volume这些相关的消息.
- setItem:设置要播放的对象,并根据播放对象的类型确定当前Model是否应该处于活动状态(isActive),比如要播放FLV文件,那么MP3Model和ImageModel都应该处于非活动状态,而FLVModel应该处于活动状态.
- setStart:播放.具体操作由子类完成.
- setPause:暂停.
- setStop:停止
- setVolume:设置新的音量值.
AS Code
private function setVolume(vol:Number) { isActive == true ? sendUpdate("volume",vol): null; };
我们看到改变音量时Model实际上也没做什么,只是告诉视图要改变音量了.其实,实际的设置音量的动作要由子类实现,因为AbstractModel并不知道实际的媒体文件是什么类型的,也就无法完成设置音量的实际操作,但是无论如何,都应该告诉视图,音量改变了,视图也需要更具实际的值做些改变. - sendUpdate:公有方法,向视图类发送更新通知,让视图改变用户界面.
- sendCompleteEvent:这个是要想Controller发送一个播放完毕的事件,由Controller决定下一个动作.
FLVModel
FLVModel的属性
- mediatypes:保存了FLVModel可以处理的文件类型,包括flv,rtmp,mp4,m4v,m4a,mov,3gp,3g2.
- connectObject:NetConnection对象.
- streamObj:NetStream对象
- soundObj:控制音量
- loadedInterval:监视下载时用
- currentLoaded:已下载的百分比
- positionInterval:设置进度条用
- metaDuration:元数据保存的时间长度
- currentState:当前播放的视频的状态
- currentVolume:音量
- videoClip:显示视频的元件
- metaKeyframes:关键桢对象,用来从PHP流中读取视频数据
- stopFired:是否触发停止事件
- flvType:转换FLV类型
- capView:字幕视图
FLVModel的方法
- FLVModel:构造函数.先调用父类的构造函数,初始化继承的属性.然后初始化自己的属性.
- setItem:确定使用哪种格式的FLV(HTTP,RTMP,FLV).这里的HTTP和FLV的区别在于HTTP是要从服务器脚本中读取视频流,而不是直接从FLV文件上获得.
- setStart:开始播放指定的视频.
- updateLoaded:读取并广播当前加载的FLV的百分比.
- updatePosition:读取并广播播放头的位置和剩余时间
- setPause:暂停当前播放的文件
- setStop:停止播放视频,并清除数据
- setVolume:设置音量
- setStreamObject:新建一个NetStream对象.
- playKeyframe:从关键帧的位置处开始播放
MP3Model
MP3Model的属性
- mediatypes:可以处理的文件类型(mp3,rbs)
- soundObject:声音实例
- soundClip:绑定声音用的
- loadInterval:加载定时器
- currentLoaded:当前已加载的百分比
- positionInterval:监视播放头
- soundDuration:声音长度
- currentState:当前状态
- currentVolume:当前音量
MP3Model的方法
- MP3Model:构造函数,先调用父类的构造函数,然后初始化绑定声音的 MC.
- setStart:播放声音
- updateLoaded:更新下载的百分比
- updatePositino:更新播放头位置
- setPause:暂停.
- setStop:停止.并清除声音对象.
- setVolume:设置音量
ImageModel
ImageModel的属性
- mediatypes:支持的文件格式(jpg,gif,png,swf)
- ImageLoader:加载器
- imageClip:图片容器
- imageLength:图片或SWF的时间长度
- positionInterval:监视播放头
- currentState:当前状态
- isSWF:是否是SWF文件
ImageModel方法
- ImageModel:g构造函数.先调用父类的构造函数.imageLength是从设置参数中获得的.
- setStart:开始播放
- updatePosition:更新播放头
- setPause:暂停播放
- setStop:停止播放