简体   繁体   English

在Kineticjs Canvas中使用Hammerjs事件

[英]Using Hammerjs events within the Kineticjs Canvas

I am trying to use Hammer.js events within the Kinetic.js canvas and can't seem to get it working. 我试图在Kinetic.js画布中使用Hammer.js事件,似乎无法让它工作。 I have tried both of the following: 我尝试了以下两种方法:

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");
});

OR 要么

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

When using the first method, I get an error "has no method 'hammer'". 当使用第一种方法时,我收到错误“没有方法'锤子'”。 The other I get no messages. 另一个我得不到消息。 Is it possible to use Hammer.js within the Kinetic.js canvas? 可以在Kinetic.js画布中使用Hammer.js吗?

It is posibble. 它是posibble。 But you can not listen kineticjs objects with hammer. 但你不能用锤子听kineticjs对象。 You can listen documet elemets. 你可以听文件元素。 For example canvas of layer or whole stage element. 例如,图层或整个舞台元素的画布。

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

Update: 更新:

Currently you can use KineticJS nodes and HammerJS events. 目前,您可以使用KineticJS节点和HammerJS事件。 (little patch need) First look at demo listed here: https://github.com/lavrton/KineticJS-HammerJS-test (小补丁需要)首先看看这里列出的演示: https//github.com/lavrton/KineticJS-HammerJS-test

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM