2014-04-16 24 views
1

有沒有簡單的方法將Textpath從其初始位置移動?通過簡單地增加它的X和Y屬性,我不會遇到移動Shape的問題,但它似乎不適用於Textpath。我也嘗試重置它的數據屬性(不起作用),或完全重新創建它(工作,但由於某種原因之後消失,也許是因爲觸發器將其移動到形狀上的鼠標懸停?)。基本上,我需要最簡單的方法來移動它的基礎上的位置(所以我可以+ = - =座標)。KineticJS移動文本路徑

回答

1

文本路徑並不像其他節點那樣移動。無論節點的實際x/y位置如何,data屬性都決定了顯示的點。正如你提到的,改變數據屬性不起作用(加誰願意重新計算所有這些點的每一個運動?)

由於在data屬性點是相對於該節點的父母,我覺得最簡單的方法將文本路徑包裝在一個組中,然後根據需要使用.move().setPosition()移動該組。

例(代碼改編自Text Path Tutorial):

var stage = new Kinetic.Stage({ 
    container: 'container', 
    width: 578, 
    height: 220 
}); 
var layer = new Kinetic.Layer(); 

var textpath = new Kinetic.TextPath({ 
    x: 100, 
    y: 50, 
    fill: '#333', 
    fontSize: '24', 
    fontFamily: 'Arial', 
    text: 'All the world\'s a stage, and all the men and women merely players.', 
    data: 'M10,10 C0,0 10,150 100,100 S300,150 400,50' 
}); 

var group = new Kinetic.Group(); 
group.add(textpath); 
group.move({x:50, y:50}); 

layer.add(group); 
stage.add(layer); 
+0

是的,想通這只是發表我的問題,我會在一個組包一切,移動它這樣的,尤其是因爲我有更多的東西,我動議後與此同時。但是,無論如何,謝謝。 – user3515633