2013-03-04 19 views
0

我有以下代碼,但位置不會隨鼠標懸停而變化 - 我錯過了什麼?kinetic js - 我如何動態修改屬性(onmouseover)

function drawOverlay() { 
    var stage = new Kinetic.Stage({container: 'overlay'}); 
    var layer = new Kinetic.Layer(); 

    var rect = new Kinetic.Rect({ 
     x: 239, y: 75, 
     width: 100, height: 50, 
     fill: 'green', stroke: 'black', strokeWidth: 4 
    }); 
    rect.on('mouseover', function(e) {rect.setPosition({x: 50, y: 5 0});}); 

    layer.add(rect); 
    stage.add(layer); 
} 

回答

1

兩個問題在這裏:

  1. 你的y值中有空格: 「5 0」 與 「50」,這將導致一個JavaScript解析錯誤。
  2. 您需要在更改節點位置後重新繪製圖層。

那麼試試這個:

rect.on('mouseover', function(e) { 
    rect.setPosition({x: 50, y: 50}); 
    layer.draw(); 
}); 
+0

非常感謝 - 的layer.draw()特別是我所需要的 - 嘗試過各種形式的setAttrs的太前,沒有運氣。 順便說一下,傳遞字典也適用於setPosition() 對於錯字 - 抱歉,應該在我發出之前發現。 – RoyM 2013-03-04 16:45:39

+0

啊,很高興知道該字典也工作,我會從答案中刪除,因爲它不是問題。 – WildCrustacean 2013-03-04 16:47:40