说起来,这swf文件,真是让人又爱又恨的存在。想当年,Flash动画、小游戏那是一个火爆,谁电脑里没存几个压箱底的宝贝。可浏览器一更新,这玩意儿打开比登天还难。我最近清理电脑旧文件,翻出一堆压箱底的swf,头大,想着怎么才能把它们再瞅一眼,于是就琢磨了这么一套“开箱”方法。
我肯定是找那些专门的播放器,毕竟它们才是专门为搞定这些老古董设计的。我翻出了我尘封已久的“珍藏”——Flash Player Projector。这玩意儿就是Adobe官方给的那个调试播放器,直接双击swf文件就能跑起来,简单粗暴。我试着拖进去一个动画,啪一下,它就开了。这招数对我那些静态的、没啥复杂交互的动画文件特别管用。
不过光有这个还不够,我发现有些稍微复杂点的小游戏,这个播放器就有点吃力了,不是加载慢就是某些交互没反应。我就又找了个专门的SWF播放器软件,名字就不提了,反正就是在搜索引擎里搜“SWF播放器”排前几位的那个。这个软件功能多点,支持一些简单的菜单选项。我把游戏文件扔进去,基本能跑起来,虽然界面有点土,但好歹能玩。
后来我听说,有人用旧版本的浏览器来搞定。我特意找了一个很早的IE版本虚拟机装了装(这只是为了测试,谁现在还用IE)。在那个虚拟机里,我安装了那个早就停更的Adobe Flash Player 浏览器插件。结果,浏览器里建个本地HTML文件,然后用<object>或<embed>标签引入swf,它竟然神奇地跑起来了。但这种方法太折腾了,谁愿意为了几个swf开个虚拟机?

我又琢磨着浏览器扩展。我试着在Chrome里装了一个Ruffle的扩展。Ruffle这东西是用Rust语言重写的Flash模拟器,目的就是替代官方的Flash。我把扩展装然后直接在Chrome里打开本地的swf文件链接,好多以前打不开的互动内容瞬间就活了。这个体验比虚拟机好多了,起码是在现代浏览器里操作的。
播放器和模拟器都有局限性,总有点担心它们跑不全所有功能。我寻思着,干脆转成现代格式得了。我找了个swf转html5的工具。这个过程有点慢,我挑了几个体积小的动画来试水。软件把swf文件解析了,然后生成一堆HTML、CSS和JavaScript文件,把动画内容塞进去了。虽然有些转出来的效果和原版有点小出入,但至少能保证在任何现代设备上都能看了,这点很关键。
对于游戏类的swf,我选了swf转GIF或MP4。虽然失去了互动性,但至少能把精彩片段录下来做个备份。我用了一个转换器,把几个经典的对战小游戏录制成了几段视频。看着那些熟悉的像素点在现代屏幕上播放,也算是一种情怀的保留。
我发现有些swf文件里存的是纯粹的素材,比如图片或者声音文件。我用了一个SWF反编译工具(名字就不说了,大家懂的都懂),把这些文件扒拉开了。我惊喜地发现,很多老动画的原始PNG序列帧、背景音乐都乖乖地躺在里面。我把它们导出来,用Photoshop和Audition重新组合了一下,虽然费了老劲,但成品绝对是原汁原味的。

经过这么一番折腾,我那一堆陈年的swf文件总算有了个安放之处,有的被流畅播放了,有的被转化成了视频,有的甚至被我拆解成了原始素材。确实,解决这个问题需要多种手段并用,但总有一款能对上你的胃口。