我想检测鼠标何时进入画布以及何时进入kineticjs.在这一刻我得到了这个解决方案。
var _mouse_uno='mouseenter mousemove';
var _mouse_dos='mouseout';
stage.on(_mouse_uno, function(evt) { //QUE NO SE SALGA LA IMAGEN
layer_icos.hide();
});
stage.on(_mouse_dos, function(evt) {
layer_icos.show();
});
但是当我进入另一个图层时,他们会向我展示我不喜欢的图层layer_icos
。
也可以通过翻译为所有图层设置动画,以便外出。
谢谢你,对不起我的英语不好。
答案 0 :(得分:1)
演示:http://jsfiddle.net/m1erickson/QxL7h/
只有在鼠标悬停在形状上时,舞台才会触发鼠标事件,如mouseenter / mouseleave。
当鼠标悬停在舞台的空白部分时,舞台不会触发鼠标事件。
因此,如果你总是希望在舞台上获得鼠标事件,你可以添加一个几乎透明的矩形来填充舞台。
这样,鼠标总是在一个形状上,总会触发鼠标事件
var bk=new Kinetic.Rect({
x:0,
y:0,
width:stage.getWidth(),
height:stage.getHeight(),
fill:"white",opacity:0.01
});
layer.add(bk);
layer.draw();
答案 1 :(得分:0)
我暂时解决了这个职位。
bk.on('mouseenter', function(evt) {
for (var j=0;j<iconos_bases.length;j++){
//iconos_bases[j].group.setVisible(false);
iconos_bases[j].group.tween.play()
continue;
}
stage.draw();
});
bk.on('mouseout', function(evt) {
var pos=stage.getPointerPosition();
console.log(pos);
if ( (pos.x <=0) || (pos.y <=0) ){
for (var j=0;j<iconos_bases.length;j++){
//iconos_bases[j].group.setVisible(true);
iconos_bases[j].group.tween.reverse()
}
stage.draw();
}
});
我没有解决:
如果你有两个带有鼠标输入和鼠标输出的对象,它们是重叠的(一个在另一个之上),当输入一个在另一个之外时,传播对我不起作用。
我解决了:
var pos=stage.getPointerPosition();
if ( (pos.x <=0) || (pos.y <=0) ){}