正在加载...

转载请保留: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

还没找到您要的东西?Google试试看吧,
Google更注重原创、时效性好的文章:


本文相关评论: 才 2 条评论
  1. 学而不厌 2007-03-12 08:49:17

    分析的非常好。

  2. xm 2007-03-13 08:47:07

    好文章当然要顶!

[支持Ctrl+Enter]为了我们大家和家人的安全,留言请慎重!
声明:
1、本站仅与见过面的个人博客交换链接,见此文
2、留言时的头像是Gravatar提供的服务。如果您有兴趣并且有闲暇时间,可以看看这里的介绍