2013-02-02 77 views
0

我使用ReadySetRaphael工具從InkScape導入了一個SVG。我想動畫的svg,並緩解它。所以只是出於測試目的,我試圖使用動畫方法轉換它。無法獲得svg動畫

我不斷收到一個錯誤,說我的對象沒有「animate」的方法。我已經檢查了其他的答案,這表明我必須克隆該對象並設置最終路徑,但不確定是否會這樣做,或者它如何適用於我?

這是我的js代碼到目前爲止。

//code created using readysetraphael. Original svg made in inkscape. 
var rsr = Raphael('rsr', '744.09448', '1052.3622'); 

var layer1 = rsr.set(); 
var path2993 = rsr.path("m 344.93716,348.36218 c 0,0 34.17415,-33.06016 -1.26571,-83.92195 -35.43985,-50.86178 39.23699,-38.14634 6.32855,-91.55121 -32.90844,-53.40487 -50.62837,-36.8748 -50.62837,-36.8748 -9.49282,-0.63577 -8.85996,-0.63577 -8.85996,-0.63577"); 
path2993.attr({ 
    id: 'path2993', 
    parent: 'layer1', 
    fill: 'none', 
    stroke: '#cf0000', 
    "stroke-width": '2.92', 
    "stroke-linecap": 'butt', 
    "stroke-linejoin": 'miter', 
    "stroke-miterlimit": '4', 
    "stroke-opacity": '1', 
    "stroke-dasharray": 'none', 
    "marker-start": 'none', 
    "marker-mid": 'none', 
    "marker-end": 'url(#TriangleInL)' 
}).data('id', 'path2993'); 
layer1.attr({ 
    'id': 'layer1', 
    'name': 'layer1' 
}); 

var rsrGroups = [layer1]; 

//Animate svg 
rsr.animate({ 
    transform: 's2' 
}, 2000); 

回答

1

您的代碼將通過紙張對象拉動動畫調用。由於animate() is a member of Element,呼叫失敗。

我假設您正在嘗試對特定形狀進行動畫製作,例如, path2993。只需要在相關元素上調用它:

path2993.animate({transform: 's2'}, 2000); 
+0

我其實沒有紙張對象。我需要首先初始化嗎? 只是增加上面的行,給我一個錯誤 未捕獲TypeError:對象Raphaël的集沒有方法'animate' –

+0

你實際上*做*有一個紙對象初始化,你沒有調用'var rsr = Raphael 'rsr','744.09448','1052.3622');',因此'rsr'就是你的論文。只是添加該行對你沒有任何好處,你必須首先刪除導致問題的調用('rsr.animate({transform:'s2'},2000)'')。 –

+0

@KhuramMalik,看我更新的回答 –