将Flash中创建的矢量形状导出为SVG

6

是否可以将在Flash中创建的矢量形状导出为SVG文件或其他矢量格式?

如果可能的话,我该怎么做?是否有任何库、示例(或两者都有)可供使用?


可能是重复的问题:有没有一种方法可以将SWF转换为SVG格式? - Robert Longson
3个回答

15
尽管有点晚,您可能还想查看 David Belias 的 flash2svg - 这是一个用于 Flash 的 MXP 扩展,可以本地将 Flash 矢量导出为 SVG。

它与 Flash CS4 和 CS5 兼容,但没有立即提供有关其他版本兼容性的信息。

2015 年 12 月更新:

实际上,比这个更好(因为我自己使用这个扩展存在问题): SWF2SVG on wonderfl (不再工作) - 这个完美地解决了我的问题,并且我在最近的一个项目中使用了大约十几次。

2017 年 12 月更新:

正如@orangesherbert指出的那样, wonderfl.net已经停止运营,除非明确启用,否则大多数浏览器将不再运行Flash内容。然而,Flash仍然是读取Flash形状并将其转换为SVG形状的最佳方式,因此我创建了一个独立的Windows工具来实现这一点,您可以在此处下载:

Flash2SVG工具 (2019年4月更新到v1.2.1:现在包括选项!)

这是一个Windows安装程序,用于将任何已编译的SWF转换为SVG。我自己仍然经常这样做,所以我很高兴能够将其制作成独立可执行文件。

Image SWF2SVG window, featuring options for converting an SWF file to an SVG

这是用Flash构建的(惊喜!),并编译为桌面应用程序的Air版本。它使用自签名证书由Windows SDK SignTool签名。如果您遇到问题(或者想在Mac上使用它?),请让我知道。
(如果有人仍然想覆盖其浏览器设置,允许Flash在线运行,以便可以在浏览器中完成此操作,请告诉我,我会找到一个地方来托管它。)

嗨,我是做错了什么还是Wonderfl不再可用了?我导航到链接(或谷歌),但只能看到一个闪屏页面。 - atreeon
1
@orangesherbert 是的,我也注意到了同样的问题。由于Flash在网上已经被有效地淘汰,没有替代工具。我有一个本地运行的SWF,可以做同样的事情(我可以将其放在线上供人们下载,但您需要本地的Flash播放器来运行它)。我也尝试过用JS来实现,但它没有Flash天生具备的读取SWF的能力。我一直在考虑制作一个Air应用程序来完成这个任务,但我以前从未制作过独立的应用程序。 - indextwo
@indextwo - 那个工具非常有帮助,太棒了 :-) 不幸的是,这个工具似乎不能处理我的任何swf动画文件(可能只取第一帧和第一层吗?) - atreeon
@indextwo 如我在回复您的另一条评论中所提到的:没有任何东西可以自动将动画 SWF 转换为“动画”SVG(因为这种东西不存在)。您可以使用 CSS、JavaScript 或 Canvas 来为 SVG 添加动画效果;或者考虑获取 Adobe Animate,它是 Flash 的演变版本 - 专门用于处理此类事情,并且 应该 能够处理您现有的 Flash 动画。 - indextwo
1
太棒了!对我很有用。 - Blayzeing
显示剩余2条评论

9

在大量搜索后,实现此操作的方法是将当前选择的形状导出为 .fxg 文件,然后使用“放置”选项在 AI 中打开生成的 fxg 文件。然后只需选择“另存为”并选择所需的矢量格式即可。


1
这在CS6中可以工作,但是在CC中似乎已经不支持fxg了。 - josef
@orangesherbert 没有任何自动将动画SWF转换为SVG的方法。你可以使用CSS、JavaScript或画布来完成这个任务;或者考虑获取 Adobe Animate,它是Flash的下一代版本 - 专门用于执行此类操作。 - indextwo

0
Sothink SWF反编译器可以让你将Flash SWF文件的每一帧导出为SVG文件。

1
我可以看到它可以将形状/字体/文本资源导出为SVG,但不能导出帧。帧只能导出为.swf或.fla文件。(版本7.1) - AXO

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接