在Flex 4中显示SVG

7

在Flex 4中,SVG似乎被"弃用",而Adobe的FXG则是首选。如果我有一堆想要继续使用的SVG图形,该怎么办?有没有可靠的方法将SVG转换为FXG?它们是否具有相同的功能?是否有一个转换器不需要花费1500美元?

3个回答

1

如果你正在使用Flex 4进行编程,请查看Spark路径基元。对于路径数据,它使用与SVG路径相同的语法字符串。您只需要解析它,但是ActionScript完全支持正则表达式,因此使用urlrequest将SVG作为文本/XML文件加载并解析出原始数据以获取基元的路径数据不应该太难。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/primitives/Path.html

路径对象仅支持在其整个路径上进行变换,因此,如果要实时操纵路径数据,则必须将数据解析到数据结构中,并转换为字符串进行显示。

以前,如果您想要使用ActionScript 3.0图形库显示SVG路径,您将不得不在显示时用二次贝塞尔近似三次贝塞尔,但Spark基元通过接受立方体路径数据来消除了这一点——尽管即使Spark基元绘制自己时也似乎是非常接近的近似值。


路径只是一种图形元素...我有一个完整的SVG标志渲染,我想要显示它。您描述的方法可以实现吗? - Assaf Lavie

1

Inkscape现在也可以导出fxg(请参见评论#24和#42),但有一些限制

它使用简单的XSLT作为扩展,因此您可以使用支持XML转换的任何语言编写简单的脚本,以从SVG生成FXG。


1

这取决于你想要花多少功夫来解释svg数据。如果你想要实现样式、蒙版/剪辑和模糊效果等功能,Flex 4中的路径和所有属性都可以实现,但从数据中实现它需要一些工作。

大多数svg图形元素(形状和文本)可以在像inkscape这样的程序中转换为路径数据。即使如此,ActionScript也有绘制方法几何体,很可能支持基本形状。

此外,如果您想要使用元素组上的变换,还必须对其进行解析,或者您可以选择不使用组,当您不操作它们时,它们是相当无意义的。


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