0

CreateJS 鼠标点击根本不起作用的原因是什么?

编辑澄清:

Animate-CC/CreatJS Canvas 鼠标交互在此处工作(按视频播放按钮)但在此处不工作(按“播放”按钮)的潜在原因是什么?

某种类型的“阻止”,阻止画布获得点击?

进一步澄清:

请打开控制台,您将看到第一个站点同时记录画布和舞台点击,而第二个站点仅记录画布点击。

这是我的代码:

this.stage.addEventListener("click", function(){console.log("stage is clicked")});

this.stage.canvas.addEventListener("click", function(){console.log("canvas is clicked")});

我的代码被加载到上述两个页面中,但是第二个页面做了一些使舞台无法点击的事情。

有任何想法吗?

提前致谢!

更新 1:

请注意,上面的工作示例将我的广告素材(id “iRoll”)包裹在 iFrame 中,而无效示例则没有。这可能会影响 CreateJS 框架解释 DOM 鼠标交互的方式。

另外,我在上面的示例中添加了以下代码:

that.mcBTN.addEventListener("rollover", function (e) {
    that.mcBTN.gotoAndStop(1);
});

that.mcBTN.addEventListener("rollout", function (e) {
    that.mcBTN.gotoAndStop(0);
});

that.mcBTN 是黑匣子,我在第 1 帧上有文本“(滚动)”。

这是在点击时更改彩色框的代码:

that.first = true;
that.mcBTN.addEventListener("click", function (e) {
    that.mcChanger.gotoAndStop(that.first);
    that.first = !that.first;
});

如果您在黑框内部和外部交替单击,您可以看到某些东西在坐标系方面已正确注册 - (“滚动”文本应出现),但仍然是单击功能和翻转功能自己不知何故不起作用(即,彩色框不会改变颜色,并且“滚动”文本不会基于翻转交互出现。

4

1 回答 1

0

根据您最新的代码示例,我猜第二个(画布上的侦听器)可以工作,但舞台上的那个不行。重要的是要知道阶段“单击”事件仅在鼠标下有内容时才会触发。如果您想要“单击任意位置”事件,请使用“stagemouseup”

http://createjs.com/docs/easeljs/classes/Stage.html#event_stagemouseup

如果你的鼠标下确实有内容,并且点击时没有控制台日志,你可以尝试查看舞台比例。正如我在评论中提到的,Adobe 添加了一些响应式代码来缩放内容以适应,但众所周知,舞台缩放会导致鼠标坐标问题。

您有机会发布示例或更多代码吗?

于 2017-04-23T22:51:46.957 回答