AS3 - 将精灵导出或保存为SVG或其他矢量格式

时间:2012-03-16 22:44:49

标签: actionscript-3 svg vector-graphics generative-art

我正在研究AS3中的一些生成艺术项目,并且我一直遇到位图质量限制的问题。它们不像矢量那样可扩展或可编辑。是否有一个类或库可以用来获取Sprite对象的图形并将它们导出为SVG格式?其他常见的矢量格式也是可以接受的。

也非常感谢使用样本。

编辑:请注意,我使用的是FlashDevelop,而不是Adobe Flash CS。我正在寻找程序化的解决方案。

7 个答案:

答案 0 :(得分:4)

我正在尝试自己导出到svg,并且发现它有点令人惊讶,因为它很难找到一个svg导出器,因为它几乎只是xml。

我确实遇到了xgraphics,但这可能会有所帮助。

实际上你只需要SVG类。它试图模仿as3中的图形类,但我发现我需要添加一个绘制多边形类。

    /**
     * graphics
     */
    public function drawPolygon($points:Array):void {
        var $pointsString:String = "";
        for each (var $pt:Point in $points) {
            $pointsString += (" " + $pt.x +"," + $pt.y);
        }
        var xml:XML = new XML('<polygon points="' + $pointsString + '" fill="' + uintToCSS2Color(fillColor) + '" stroke="' + uintToCSS2Color(lineColor) + '" stroke-width="' + strokeWidth + '"/>');
        this.xml.appendChild(xml);
    }

这允许我通过传递点数组来制作三角形和其他形状

答案 1 :(得分:2)

如果你正在使用图形API(和/或使用premade sprites w。矢量艺术)进行生成艺术,那么最简单的方法就是以PDF格式打印。这将保留向量,您可以稍后导入到Illustrator之类的内容中进行最后的操作。我用这种方式完成了游戏的截图,效果很好。裁剪可能存在一些问题,但如果您调整缩放比例,那么这些问题应该是可以避免的。

答案 2 :(得分:1)

正如grapefrukt所说,PDF也是我的第一个。

如果您不想使用print作为pdf(这是一种笨拙的导出方式),还有alivepdf可能有效。

另一种选择是使用DEGRAFA库,但我认为您需要先使用库生成图形,但它将为您提供使用SVG格式导入和导出的功能。

答案 3 :(得分:0)

查看AS3 SWF Shape Export - SVGhapeExporter应该做得很好(example code here)。

答案 4 :(得分:0)

不幸的是,一旦采用位图格式,您就无法将光栅图形完美地转换为矢量。有一些工具试图完成这项任务,但它们取得了不同的结果。 Flash包含一个内置的“跟踪位图”功能,可以执行此任务,选择图像后,转到“修改”按钮。位图&gt;跟踪位图'。您将需要使用不同的选项来尝试获得最佳效果,但即使这样,也可能需要手动调整以整理伪像和毛刺。

This tutorial对每个选项的作用有一个相当不错的概述。

答案 5 :(得分:0)

答案 6 :(得分:0)

我有answered this differently myself earlier,但是我自己尝试过这个工具而没有太多运气,我去寻找不同的东西,并在wonderfl找到了名为 SWF2SVG 的项目。它需要上传的SWF并使用as3swf library将其转换为SVG路径。

指向SWF2SVG工具的链接: http://wonderfl.net/c/sPjI