2010-05-17 63 views
4

我在http://bkp.ee/atirip/找到了一個整潔的SVG解析器,解析一個SVG文件並將其輸出到使用Raphael JS庫(raphaeljs.com)的JavaScript中。你會在源代碼在http://bkp.ee/atirip/svg2rdemo.php注意:Raphael JS - 動態解析SVG

<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我應該看看做出這個改變嗎?

回答

2

我做了一些調整,並擠壓了一個bug。您可以下載新版本。現在

你可以調用解析器是這樣的:

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); 
+0

好的,很酷。這有很大幫助!謝謝。這不正是我所期待的。以下是對新解析器的一些更改:http://chrispaul.ws/svgToRaphaelParser.txt我寫出$ attrs ['id']而不是使用傳入的組名。 – Chris 2010-05-18 22:24:25

+0

該文件的新版本在哪裏? – supertrue 2012-08-29 22:50:31