从flex播放/暂停flash.display.avm1movie

问题描述:

我正在使用swfLoader在我的flex/actionscript代码中加载外部Flash动画。如果加载的swf是为更新的Flash播放器版本而制作的(我相信9.0或更高版本),它将作为flash.display.MovieClip对象加载,该对象具有播放/暂停和转到帧的方法。但是,如果加载的SWF是为较老的Flash Player制作的(我相信6.0),那么它会加载为flash.display.av1movie,它没有播放/暂停的方法。有没有一种方法可以从我的flex代码中播放/暂停av1movie。从flex播放/暂停flash.display.avm1movie

有一种方法:ForcibleLoader。它像这样工作 - 将swf加载为ByteArray,然后修改它并使用loadBytes加载结果。它将as3标志设置为true,并将swf版本设置为9.但是,请注意,由于与AVM1有很多不同,因此as2脚本在AVM2中无法正常工作。但是如果你有简单的动画,这可能会奏效。您将获得MovieClip而不是AVM1Movie,只需对其进行测试即可。

+0

+1有趣,不知道这个! ;) – PatrickS 2010-11-10 09:13:28

+0

链接不起作用了。试试这个:http://code.google.com/p/as3-classes/source/browse/trunk/org/lzyy/util/ForcibleLoader.as – Triynko 2012-09-05 21:35:49

不,没有!

从文档:

The AVM1Movie object can use methods and properties inherited from the 
    DisplayObject class (such as x, y, width, and so on). However, no 
    interoperability (such as calling methods or using parameters) 
    between the AVM1Movie object and AVM2 objects is allowed.