在Kinetic.Node.create()之后点击浏览图层

时间:2013-04-26 10:12:44

标签: javascript html5-canvas kineticjs

我正在将JSON图层导入舞台。

var loadedobject = Kinetic.Node.create(data);
        maplayer.add(loadedobject);

更改我正在导入的内容的代码似乎很好:(BTW:.maplayer2是我导入的图层)

maplayer.get('.maplayer2')[0].setScale(browserwidthdifference);
            maplayer.get('.maplayer2')[0].setY(browserheight/2);
            maplayer.setDraggable(true);

但是,如果下面的代码不起作用:

maplayer.on('click', function() {
                console.log('help');    
            });


maplayer.get('.maplayer2')[0].on('click', function() {
                console.log('help');    
            });

我让导入图层的背景为黑色,这样我才能看到检测结果。但是,如果我这样做:

backgroundlayer.on('click', function() {
                console.log('help');    
            });

即使我点击了明显位于其他图层顶部的导入图层,我也会获得点击响应。 maplayer.moveToTop()也不起作用。所有替换都有效,但点击事件不适用于导入的对象。

如果我在maplayer中创建另一个对象,当我点击它时会响应它,但仍然无法检测到图层中导入的图层。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您保存组对象中的所有对象,它将正常工作!所以当你保存东西时,不要在一个Layer中但在一个Group对象中这样做。