我正在使用画布和 EaselJS 构建游戏,但是在 onclick 内执行任何操作时都会出现问题,即移除窗口焦点。提示,警报,window.open。
据我所知,它发生在 FireFox 和一些移动 Android 设备上。
我想我明白为什么会这样,但我不知道如何解决(我不知道如何用一句话解释,所以这个问题的标题并不完全正确)
如果我在 onclick 中有这样的警报
_t.container.on('click', function(e) {
alert('test');
//end
e.preventDefault();
e.nativeEvent.preventDefault();
return false; //all of these added when trying to find a work around
});
//如何重现问题
如果单击目标,则触发警报,将鼠标移动到任何位置(尽管仍在画布上)按回车键关闭警报,然后无论鼠标位于何处,直到它被移动,单击都会触发相同的事件,并再次提醒......
这只是移动设备上的真正问题,因为“鼠标”无法移动/触摸位置更新,因此屏幕上的下一次点击总是会触发第二次点击,而在台式机上,只有在关闭鼠标后没有移动鼠标时才会这样做警报。
我认为这是 CreateJS 库本身的问题,因为任何关于单击事件和警报的示例都有这个问题。
我在想可能有一种方法可以强制 createjs 将鼠标位置设置为 0,0
这是可以找到问题的示例..
http://www.ajohnstone.com/test/hackday/CreateJS-EaselJS-b262a85/tutorials/Mouse%20Interaction/