0

我们有一个 Flash 应用程序,我们计划将其转换为 javascript。这是一个非常简单的地图应用程序,以图像为背景和一堆简单的多边形影片剪辑,代表地图上的目的地。

我想遍历每个影片剪辑并将形状提取到 x,y 点数组中,以使用外部 javascript 函数重绘多边形。

使用动作脚本可以做到这一点吗?

4

3 回答 3

2

如果您想在作者时导出形状坐标,您可以尝试@strille 或这个推荐的 JSFL 脚本或导出透明图像(如果这对您的应用程序来说不是太限制的话)。

如果您需要在运行时导出形状,可以使用很棒的as3swf库来反编译 swf 并导出形状。看看ShapeExport wiki,因为有几个方便的 js 导出器,比如JSCanvasShapeExporter和更通用的JSONShapeExporter

于 2012-08-15T19:43:56.497 回答
0

Flash Player 11.6 引入了readGraphicsData(),它完全符合您的要求。

如果您需要针对早期版本,那么不幸的是,没有简单的方法可以在运行时使用 ActionScript 从显示对象中读取形状坐标。

如果您只想在有人为 Flash CS3 编写了一个 jsfl 脚本后提取形状坐标,看起来它可能会帮助您。

于 2012-08-15T17:00:59.670 回答
0

您可以通过多种方式从 SWF 中读取坐标。例如,我用 PHP (链接) 编写了一个解析器。事实证明,获取数据并没有帮助。Flash 绘画模型与 HTML5 的不同之处足以使传输变得异常困难。我发现的主要障碍是,在 Flash 中,可以使用两种填充样式填充路径:一种用于路径包围的区域,另一种用于被奇偶规则视为“外部”的封闭区域(例如,五边形一颗星星的中间)。由于 HTML5 画布只允许您指定一种填充样式,因此您无法从 Flash 中准确地重绘形状。我试图创建一个将形状提取为 SVG 的工具,结果中出现了很多间隙和漏洞。

于 2012-08-15T17:50:46.743 回答