ForcibleLoader低版本SWF兼容适配

低版本 SWF 的高版本适配,一直是 AS3 里挺烦人的事,是你手头还有些旧项目资源,直接用 Loader 加载,常常就出问题。ForcibleLoader.as就是专门搞定这茬事的,能把version 9以下的 SWF“伪装”成高版本,让 AS3 环境更顺畅地读进去。

它用的思路也蛮巧,先把 SWF 读成ByteArray,再通过loadBytes()加载。中间会偷偷把 SWF 头部的版本号改成 9 以上,看起来就像是“合法”的新版文件,Flash Player 自然也就不太挑了。

你如果遇到的是一些动画类的老 SWF 文件,转换成功率还是挺高的。转完之后,它基本就像个普通MovieClip,你能addChild,也能监听事件,访问子元素都 OK。代码里怎么用你也懂,AS3 那一套写就行。

啦,也不是万能钥匙。要是老 SWF 里用了古早的ActionScript 1.0语法或者奇怪的图形命令,那就得看你的运气了。有时候转了之后行为怪怪的,还得手动补救下。

我之前接了个老项目迁移的活儿,用ForcibleLoader确实省了不少事,尤其是在不想重做素材又想在 AS3 里继续迭代的场景下。如果你也有类似需求,可以试试它,配合SWFObject或者其他加载策略一起用,体验还不错。

延伸看看:ActionScript3 教程 也讲得挺清楚,有空可以翻翻。

rar
ForcibleLoader.rar 预估大小:1个文件
file
ForcibleLoader.as 5KB
rar 文件大小:2.09KB