Canvas CreateJS动画CC-鼠标单击不';行不通

Canvas CreateJS动画CC-鼠标单击不';行不通,canvas,iframe,createjs,easeljs,animate-cc,Canvas,Iframe,Createjs,Easeljs,Animate Cc,CreateJS鼠标点击根本不起作用的原因是什么 编辑以澄清: “动画CC/CreatJS画布鼠标交互”工作的潜在原因是什么(按视频播放按钮) )但不是(按“播放”按钮) 某种类型的“阻塞”,阻止画布获得点击 进一步澄清: 请打开控制台,您将看到第一个站点记录画布和舞台点击,而第二个站点只记录画布点击 这是我的代码: this.stage.addEventListener("click", function(){console.log("stage is clicked")}); this.s

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

编辑以澄清:

“动画CC/CreatJS画布鼠标交互”工作的潜在原因是什么(按视频播放按钮) )但不是(按“播放”按钮)

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

进一步澄清:

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

这是我的代码:

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);
});
.mcBTN是黑框,我在第1帧上有文本“(滚动)”

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

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

如果在黑匣子内部和外部交替单击,您可以看到某些东西在坐标系方面注册正确—“滚动”文本按其应有的方式显示,但单击功能和滚动功能本身仍然无法工作(即,彩色框不改变颜色,“滚动”文本不会基于滚动交互显示。

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

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


您是否有可能发布一个或多个示例代码?

阶段缩放可能会导致这种情况。Adobe为转换坐标的阶段添加了“响应”缩放。请查看单击是否从阶段中的其他地方触发。thanx Lanny,我实际上进一步简化了问题(请参见上面的编辑).在有问题的页面上-根本没有捕获任何阶段点击。对此有何想法?Thanx Lanny非常感谢您的输入!实际上,Adobe不仅做了“响应性”测试东西,但我也采取了该代码,并根据我的需要对其进行了进一步修改。也许我在那里做了一些错误,我将很快在这里发布所有代码中似乎相关的部分。同时,再次检查不点击页面:点击蓝色和黑色区域-光标会相应地改变。这难道不意味着问题不是一个坐标吗Lanny我在问题中添加了更多的信息,也许更清楚。还要注意的是,尽管Animate正在生成一个完整的HTML页面(在其中有一个保存画布的div),但我的代码将该画布“手动”添加到我们的系统中(以类似于“手动”使用CreateJS/EaselJS的方式)-没有动画)。