获得“mouse"使用EaselJS在触摸设备上定位
Get "mouse" position on touch devices using EaselJS
我正在使用带有EaselJS库的<canvas>
标签创造一款街机风格的HTML5游戏,今天我在尝试执行触控支持时发现了一个问题。有人能帮帮我吗?
我已经成功地实现了当用户触摸英雄时的跳跃动作,但是现在我想再添加两件事:当用户触摸屏幕左侧时,英雄将向左移动,当用户触摸屏幕右侧时,英雄将向右移动。此外,我也在考虑当用户用两个手指触摸屏幕时执行跳跃,但我不知道这是否可行,如果不可行,那么我将需要其他方法在行走时执行跳跃。
我认为问题的解决方案是非常简单的,但搜索它没有帮助,我找到了非常复杂的答案,我的目标是尽可能保持代码的简单性。提前谢谢。
相关代码如下:
var x = 0, y = 0;
document.addEventListener("mousemove", function(e){
x = e.pageX,
y = e.pageY;
});
document.addEventListener("mousedown", function(e){
if (!key.holdingUp) { // Checks if event was fired again before "mouseup"
if(x > hero.x+hero.width+hero.offset){
key.right = true;
}
if(x < hero.x-hero.offset){
key.left = true;
}
if(x > hero.x-hero.offset && x < hero.x+hero.width+hero.offset){
key.up = true;
}
}else{
key.up = true;
}
});
document.addEventListener("mouseup", function(){
setTimeout(function(){
key.up = false;
key.right = false;
key.left = false;
key.holdingUp = false;
},1000/60); // Wait for one tick loop
});
JSFiddle(相关代码从160行开始)
这里是工作小提琴:http://jsfiddle.net/4ABMN/4/
我已经在Android的Firefox上测试过了。我遵循这个指南:http://www.createjs.com/tutorials/Mouse%20Interaction/
本质上,你需要使用框架事件而不是直接的DOM:
stage.on("stagemousedown", function(evt) {
alert("the canvas was clicked at "+evt.stageX+","+evt.stageY);
})
编辑:我忘了说,你需要加上这一行:
createjs.Touch.enable(stage);
相关文章:
- CSS-如何定位内容数据标题
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 在Jquery detachment()和appendTo()之后定位元素
- 困在逻辑中试图定位动态的东西
- 触摸移动时切换到新元素
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 绝对定位不适用于Javascript DIV
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- iOS 中的按钮触摸状态
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何使用纯javascript的移动触摸事件
- Jquery定位代码并调用它
- 如何在容器中定位旋转的图像
- Highcharts-图表外的图例定位
- .scroll()函数在上次更新后在谷歌chrome中定位闪烁
- 如何使用javascript检测触摸设备浏览器与桌面
- 如何在CSS或Javascript中定位选定的属性(在HTML选项中)
- 地理定位api和谷歌地图出错
- 触摸启动事件未在iframe iOS 6中启动
- 获得“mouse"使用EaselJS在触摸设备上定位