2010-06-29 120 views
3

我正在使用Raphael庫創建SVG對象。如何爲'Raphael'畫布設置動畫?

要初始化SVG形狀和創造的一切內部的畫布,我用下面的行如文檔中表示:

var paper = Raphael(10, 50, 320, 200); 

我現在想動畫裏面的紙張,一切,只是像我將其動畫已追加到紙在下面的滿耳的形狀:

var firstShape = paper.rect(x, y, width, height); 
firstShape.animate({x: 100}, 500, "<"); 

當我嘗試用紙張如類似:

paper.animate({x: 100}, 500, "<"); 

我收到錯誤'paper.animate is not a function'。

這裏發生了什麼,我該如何解決這個問題?

回答

3

你的右括號序錯誤

變化

paper.animate({x: 100, 500, "<")}; 

paper.animate({x: 100}, 500, "<"); 

UPDATE

從文檔,它似乎並不認爲animate可以稱爲直接在paper,但僅適用於子形狀切出的畫布 - 這就是爲什麼firstshape.animate工作

+0

對不起,我的錯。我在問題中輸入了新的內容,但是在我的實際代碼中沒有出現該錯誤。我已經更新了這個問題來反映。 – 2010-06-29 10:11:53

+0

傑克 - 查看我的更新 – JoseK 2010-06-29 10:21:59

0

你不能動畫繪圖板...只有裏面的形狀..

紙是你的繪圖板..而firstShape是在板內創建的形狀。

+0

我假設主要的「繪圖板」只是SVG元素。你不能動畫/轉換整個SVG對象嗎? – 2010-06-29 10:25:37

+0

@Jack,我的理解是'Raphael(..)'返回一個畫布對象。其餘的都是引用這個畫布的對象,並且可以在它內部進行動畫..我可能錯了,但是.. – 2010-06-29 12:34:12

9

您不能爲紙質對象設置動畫效果。紙張沒有動畫屬性。但是,您可以將所有元素合併到set中,然後對其進行動畫處理。

+5

我可以藉此機會說:「感謝Raphaël」=) – 2010-07-11 11:10:01