【问题标题】:Raphael JS - Parsing an SVG on the flyRaphael JS - 动态解析 SVG
【发布时间】:2011-02-20 15:44:06
【问题描述】:

我在http://bkp.ee/atirip/ 找到了一个简洁的 SVG 解析器,它解析 SVG 文件并将其输出到使用 Raphael JS 库 (raphaeljs.com) 的 javascript 中。您会在http://bkp.ee/atirip/svg2rdemo.php 的源代码中注意到:

<script>
  jQuery(document).ready( function() {
    $("#c1").each(function(){  
    var c = Raphael(this, 190, 154, 0, 0);
    var g1 = c.set();
    ...

它会创建 g1、g2 等变量。但它也会重用这些变量。我想为每个组创建唯一变量。在我的 .ai 文件中,我已经命名了我的组,我想使用这些名称来创建变量名称。

我应该在http://bkp.ee/atirip/f/svgToRaphaelParser.php.zip 的哪个位置进行此更改?

【问题讨论】:

    标签: javascript xml parsing svg raphael


    【解决方案1】:

    我做了一些调整并挤掉了一个错误。您可以下载新版本。

    现在你可以像这样调用解析器了:

    svgToRaphaelParser::parse(filename, containername, canvasname, groupname, shapename)
    

    没有 shapename,它的工作方式就像以前一样: svgToRaphaelParser::parse("f.svg", "this", "c", "g") 生成您已经熟悉的代码。

    为避免重复使用相同的名称,请为不同的 SVG 文件使用不同的画布和/或组名称。

    作为一项新功能,如果您需要访问不同的形状,请像这样使用它:

    svgToRaphaelParser::parse("f.svg", "this", "c", "g", "s")
    

    没有 shapename 你会收到这个:

    g1.push(c.path(...));
    

    使用 shapename 你会收到这个

    var s1 = c.path(...);
    g1.push(s1);
    

    【讨论】:

    • 好的,很酷。这很有帮助!谢谢你。这不完全是我想要的。这是我对您的新解析器的一些更改:chrispaul.ws/svgToRaphaelParser.txt 我写出了 $attrs['id'] 而不是使用传入的组名。
    • 这个文件的新版本在哪里?
    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2015-09-21
    • 2015-09-09
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多