在as3或flex中控制avm1 swf的播放

flash8或者as2编译出来的swf均是AVM1Movie,这种格式在flex中虽然可以load进来,添加进显示列表,但却不能控制它的播放。

或许我们可以把avm1文件破解,拿到源文件,再重新发布成avm2格式。这个方法没有问题,但如果要转换许多文件,这并不是一个好主意。

如何在as3里直接控制avm1的播放?play or stop and other?可以用AVM1MovieProxy解决。在这里先看一下效果:

demo地址:Load and Control AVM1Movie in as3 demo

示例使用了AVM1MvoieProxy,这个类代理了对avm1的访问,你可以这样认为,因为直接play或者stop avm1在as3中是不可能的。

相关源码可以在这里得到:
1,http://sban.googlecode.com/svn/trunk/flexStudy/src/AVM1_to_2.mxml
2,http://sban.googlecode.com/svn/trunk/flexStudy/src/sban/flexStudy/avm1to2/

sban 2009/2/21 于北京朝阳园

原文链接:http://blog.sban.com.cn/2009/02/21/how-to-load-and-play-stop-avm1-swf-in-as3-or-flex.html

作者:sban
出处:http://sban.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Tag标签: flex,sban,avm1,stop,play
0
0
(请您对文章做出评价)
« 上一篇:如何使DataGrid的同例单无格有不同的渲染样式
» 下一篇:DataGrid Example with SelectAll Checkbox
posted @ 2009-02-22 23:22 sban 阅读(1606) 评论(1)  编辑 收藏 网摘 所属分类: flex

  回复  引用    
#1楼2009-05-23 04:28 | 影忆坊
不知为什么,好像用您的这个类不能修改任意版本的swf文件.
我用您提供的和自己写的AS2的swf文件测试可用,但是我想用做控制有的未知版本的swf文件失败,io错误事件.
您能详细说明一下您修改swf标签的方法吗?我没修改过,看起来好像用的是bytesArray...
谢谢