2014-02-27 60 views
0

我正在嘗試將HammerJS與KineticJS結合使用。我在網上找到了一些例子和tipps,但它不適合我。如何將HammerJS事件綁定到KineticJS形狀?

我在一個循環中創建了很多圖像對象,並在圖層的循環結束處繪製它們。每張圖片都有唯一的ID。並且每個圖像都應該對不同的多點觸控輸入做出反應,例如圖片上的長按住,捏和縮小以放大等。

我知道我只能聽文檔元素,而不能用錘子聽kineticjs對象。 但我不知道如何實現圖像。

我創建了一個演示: http://jsfiddle.net/HF3dL/1/

如果用戶對一個圈doubletap,應該顯示一個警告。我知道,用這段代碼,我沒有達到圓形...

var transformer = Hammer(stage.getContainer()) 
transformer.on('doubletap', function (e) { 
    alert("test"); 
}); 

我發現了錯誤並更新了小提琴。該方法必須在循環中。

for(var n = 0; n < 10; n++) { 
var circle = new Kinetic.Circle({ 
    x: Math.random() * stage.getWidth(), 
    y: Math.random() * stage.getHeight(), 
    radius: Math.random() * 50 + 25, 
    fill: 'red', 
    stroke: 'black', 
    strokeWidth: 3, 
    draggable: true, 
    id: 'img'+n 
}); 
var transformer = Hammer(circle); //kineticjs stage 
transformer.on('doubletap', function (e) { 
    alert("test"); 
}); 

layer.add(circle); 

}

http://jsfiddle.net/HF3dL/3/

回答

0

集成HammerJS將在KineticJS的未來版本V5.0.2。你也可以看看這個:https://github.com/lavrton/KineticJS-HammerJS-test。你可以從這個回購得到kinetic.js文件,直到發佈。

+0

謝謝,我的問題是,我忘記了var transformer = Hammer(stage.getContainer())之後的分號。現在它可以與KineticJS-HammerJS-test的lib一起工作。 – Quingel