2017-04-20 170 views
0

CreateJS鼠标点击根本无法工作的原因是什么?CreateJS Animate CC - 鼠标点击不起作用

编辑澄清:

可能是什么潜在原因动画-CC/CreatJS帆布鼠标交互工作here(按视频播放按钮 ),但不here(按下按钮“玩”)?

某些类型的“阻止”,阻止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; 
}); 

如果黑匣子和它里面外面交替点击,你可以看到,有些事情是在坐标方面正确注册inates系统 - (“滚动”文本出现,因为它应该),但仍然点击功能和翻转功能本身以某种方式不起作用(即,彩色框不会改变颜色和“滚动”文本不基于翻转交互而出现。

+0

阶段缩放可能导致此问题。 Adobe在转换坐标的舞台上增加了“响应式”缩放。查看点击是否从舞台的其他位置触发。 – Lanny

+0

thanx Lanny,我实际上进一步简化了这个问题(参见上面的编辑)。在有问题的页面上 - 根本不捕获阶段点击。对此有何想法? – Saariko

回答

0

根据你最近的代码示例,我猜测第二个(在画布上的监听者)的作品,但是舞台上的那个没有。知道只有在鼠标下面有内容时才会触发舞台“点击”事件,这一点很重要。如果你想要一个“任意位置单击”事件,然后使用“stagemouseup”

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

如果你有鼠标下的内容,并没有被点击时没有控制台日志,你可以尝试在看阶段尺度。正如我在我的评论中提到的那样,Adobe添加了一些响应式代码,可以缩放内容以适应内容,但阶段缩放会导致鼠标坐标问题。

任何机会,你可以发布一个例子或更多的代码?

+0

Thanx Lanny为您的投入如此之多!实际上,Adobe不仅执行“响应式”的工作,而且还采用了该代码,并根据需要进一步更改了它。也许我在那里做了错误的事情,我很快就会在这里发布所有代码,看起来相关的部分。同时,再次检查非点击页面:点击蓝色和黑色区域 - 光标会相应地改变。这不是说问题不是协调问题,而是其他问题? – Saariko

+0

Lanny我在问题中增加了一些信息,或许它更清楚。还要注意的是,虽然Animate正在生成一个完整的HTML页面(在其中一个持有Canvas的div中),但我的代码使用Canvas并将其“手动”添加到我们的系统中(所以类似于使用CreateJS/EaselJS“by手“ - 没有动画)。 – Saariko