2014-02-27 22 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