在 Kineticjs Canvas 中使用 Hammerjs 事件

Using Hammerjs events within the Kineticjs Canvas

本文关键字:Hammerjs 事件 Kineticjs Canvas      更新时间:2023-09-26

我正在尝试在 Kinetic.js 画布中使用 Hammer.js 事件,但似乎无法让它工作。我已经尝试了以下两种方法:

var background = new Kinetic.Rect({
        x: 0,
        y: 0,
        width: image.getWidth(),
        height: image.getHeight(),
        id: "background",
        fill: 'rgba(159, 255, 200, 0.0)',
    });
    pointLayer.add(background);
    pointLayer.draw();
background.hammer().on('tap', function (e) {
        console.log("Background tapped");
});

Hammer(background).on('tap', function (e) {
        console.log("Background tapped");
});

使用第一种方法时,我收到错误"没有方法'锤子'"。另一个我没有收到任何消息。是否可以在 Kinetic.js 画布中使用 Hammer.js?

这是可能的。但是你不能用锤子听kineticjs对象。你可以听纪录片。例如图层或整个舞台元素的画布。

var transformer = Hammer(stage.getContainer())  //kineticjs stage
transformer.on("transformstart", function(){
   // your code
});

更新:

目前您可以使用 KineticJS 节点和 HammerJS 事件。(需要很少的补丁)首先看一下此处列出的演示:https://github.com/lavrton/KineticJS-HammerJS-test