Kineticjs鼠标在&;走出画布或舞台
我喜欢在kineticjs中检测鼠标何时进入画布,何时外出。现在我有了这个解决方案Kineticjs鼠标在&;走出画布或舞台,kineticjs,Kineticjs,我喜欢在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
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\u icos
也有可能通过平移设置所有层的动画,使其向外移动
谢谢你,很抱歉我的英语不好。演示:
仅当鼠标位于形状上方时,该阶段才会触发鼠标事件,如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();
我暂时解决了这个职位
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();
}
});
bk.on('mouseenter',函数(evt){
对于(var j=0;jt谢谢你,我检查一下。但是如果我真的这样做了,如果有鼠标事件的孩子,这个鼠标事件没有执行,我检查它在同一层,有不同的层,有和没有evt.CancelBubblei如果你有两个层,一个是有mouseenter和Mouseeut的对象,另一个是有mouseent的更大的对象不透明度0.01呃mouseout。对我来说,不工作传播。如果你有更大的对象层不执行,如果你有对象层向上,当进入对象执行mouseout在更大。
var pos=stage.getPointerPosition();
if ( (pos.x <=0) || (pos.y <=0) ){}