2013-07-31 41 views
1

我有一個問題,我找不到任何解決方案。拉斐爾位置元素的權利和規模它

var sunSmallSet = RAF.paper.set(); 
var sunSet = RAF.paper.set(); 
RAF.paper.importSVG(RAFSVG.sunsmall(), sunSmallSet); 
RAF.paper.importSVG(RAFSVG.sunfull(), sunSet); 

sunSmallSet.transform("t62, 62"); 
sunSet.transform("t62, 62"); 

var anim = Raphael.animation({transform: "s0.8 0.8"}, "2000", function(){ 
    sunSet.animate(animBack); 
}); 
var animBack = Raphael.animation({transform: "s1 1"}, "2000", function(){ 
    sunSet.animate(anim); 
}); 

sunSet.animate(anim); 
  1. 上變換用於轉換兩個太陽到它們的位置。
  2. 隨着動畫中的變換,我嘗試在當前位置上縮放太陽。

發生什麼事是太陽正在回到0,0位置。

下面是一個簡單的例子:jsfiddle.net/vX4C9

+0

我想我可以回答這個問題,但我需要http://www.jsfiddle.net演示 – Brian

+0

http://jsfiddle.net/vX4C9/這裏是一個問題的例子。雖然我動畫的紅點的比例,它也移動到0,0點。有什麼方法可以縮放當前位置上的紅點? – Arno

回答

1

當你看看到拉斐爾Element.transform documentation,你會知道你正在使用的動畫的轉化都是在你的目標進行套累計操作,您重置每次你再次變形。這意味着一旦您應用一個轉換(即t62 62),您將覆蓋下一個轉換(s.8 .8)。

如果您不想將圓圈移回原始位置,則需要預先添加已執行的翻譯。在適當的方式

var anim = Raphael.animation({transform: "t62 62 s.8 .8"}, "2000", function(){ 
    circle.animate(animBack); 
}); 

This fiddle修復你的榜樣和規模上它是第一個翻譯後放在位置的圓圈:這可以通過預先t62 62將您的動畫,像這樣來完成。我冒昧地通過將其從s.8 .8 - s1 1更改爲s1 1-s2 2來強調規模操作。

+0

謝謝我過去一天,我在Raphael搜索了很多關於動畫的內容,但只有幾個網站提到了這個 – Arno