FLV Player实现的关键以及用AS3实现的优势

转载请保留:http://www.awflasher.com/blog/archives/820

Macromedia为了尽早用FLV格式来垄断Web Video应用,在FlashMX2004中匆匆Release了一个Video类。导致AS2时代的Video类设计的有许多问题。这些问题甚至可以追溯到“MovieClip大霸主”对AS2之前所有屏幕显示元素的垄断,在AS2时代中所有的Video对象必须包含在一个MovieClip中(即便是基于IDE导入的Video其实也是在_root这个大MovieClip中),而且也无法通过自定义类来extend。
如果基于AS2开发兼容Flashplayer7以下平台的FLV应用,最佳的方法就是把一个Video实例嵌入一个MovieClip,然后将这个MovieClip指定一个LinkageName,再通过AttacheMovie就能动态地调用这个MovieClip了。我们可以以成员的形式,将这个特殊的MovieClip传入自己的自定义Video扩展类,通过构造器接收一个MovieClip的参数即可。
例如,我想把与视频有关的逻辑整合到一个AVCore类中,我必须这么做:

var vdummy:MovieClip =this.attachMovieClip(“videoHost”,”vname”+this.getNextHighestDepth(),this.getNextHighestDepth());
//videoHost是Library中的一个MovieClip含有一个instanceName为”v”的Video实例
var AVCore:AVCore = new AVCore(vdummy);

这里的AVCore的构造函数负责接收这个vdummy,如:

class AVCore
{
private videoInstance:Video;
function AVCore(stage_mc:MovieClip)
{
this.videoInstance = stage_mc.v;
}
}

这一切在AS3中将得到改善,看看ActionScript3 CookBook中提到的Video类,非常强大,也挣脱了MovieClip的束缚,我们可以直接new一个Video实例,然后append之进入显示层(Display List),更可以自己extend了。除了Video以外,更多灵活的可视化资源也尽在掌控,在AS3种,不会再有麻烦的attachMovie;一个new一个append,非常干净优雅的代码。关于AS3的渲染模式,官方这张图说的很清楚:

DisplayList in Flash9

Advertisements

2 thoughts on “FLV Player实现的关键以及用AS3实现的优势

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s