html 鼠标穿透,阻止createjs鼠标穿透的方法

感谢createjs交流群的maksim大神给的方法,方法很简单就是在掩盖对象上加一个空的侦听事件,比如这样:

var shape2 = new createjs.Shape();

shape2.graphics.beginFill("#00ff00");

shape2.graphics.drawRect(0,0,100,100);

shape2.graphics.endFill();

stage.addChild(shape2);

shape2.x = 300;

shape2.y = 100;

shape2.addEventListener("click",function (){

console.log("shape2");

})

var maskShape2 =  new createjs.Shape();

maskShape2.graphics.beginFill("#000000");

maskShape2.graphics.drawRect(0,0,100,100);

maskShape2.graphics.endFill();

stage.addChild(maskShape2);

maskShape2.alpha = 0.5;

maskShape2.x = 330;

maskShape2.y = 100;

maskShape2.addEventListener("click",function (){});//空的鼠标侦听 可以阻止shape2被侦听

可以看到demo上shape1可以被穿透侦听,但是shape2不会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是利用createjs建立画板的代码和相应的事件处理函数: ```javascript // 创建 canvas 元素 var canvas = document.getElementById("canvas"); // 创建 stage 元素 var stage = new createjs.Stage(canvas); // 设置画笔颜色和线条宽度 var color = "#000000"; var thickness = 2; // 创建一个形状对象 var shape = new createjs.Shape(); // 将形状添加到舞台上 stage.addChild(shape); // 鼠标按下事件处理函数 function handleMouseDown(event) { // 开始描画 shape.graphics.setStrokeStyle(thickness, 'round', 'round') .beginStroke(color) .moveTo(stage.mouseX, stage.mouseY); stage.addEventListener("stagemousemove", handleMouseMove); // 添加鼠标移动事件 } // 鼠标弹起事件处理函数 function handleMouseUp(event) { // 结束描画 stage.removeEventListener("stagemousemove", handleMouseMove); } // 鼠标移动事件处理函数 function handleMouseMove(event) { // 在鼠标经过的路径上画线 shape.graphics.lineTo(stage.mouseX, stage.mouseY); stage.update(); } // 改变画笔颜色和线条宽度的按钮事件处理函数 function handleButton(event) { color = event.target.color; thickness = event.target.thickness; } // 导出画布内容的按钮事件处理函数 function handleExport(event) { var dataURL = canvas.toDataURL("image/png"); // 获取画布内容的 DataURL window.open(dataURL); // 在新窗口中打开 DataURL } // 添加事件监听器 canvas.addEventListener("mousedown", handleMouseDown); canvas.addEventListener("mouseup", handleMouseUp); document.getElementById("btn-black").addEventListener("click", handleButton); document.getElementById("btn-red").addEventListener("click", handleButton); document.getElementById("btn-green").addEventListener("click", handleButton); document.getElementById("btn-thick").addEventListener("click", handleButton); document.getElementById("btn-thin").addEventListener("click", handleButton); document.getElementById("btn-export").addEventListener("click", handleExport); ``` 需要注意的是,以上代码中的 HTML 元素(如 canvas、按钮等)需要根据实际情况进行定义和布局。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值