在HTML5/JS中获取画布对象位置并移动到画布触摸位置
Get canvas object position and move to canvas touch position in HTML 5 / JS
我是iPhone HTML 5和JS的新手。在我的应用程序中,我通过以下代码(这在我的game.js
类中)成功地从canvas
获得了接触点:
canvas.addEventListener("click", mouseClickEvent, false);
function mouseClickEvent(e) {
alert("Clicked x= "+e.layerX+" and clicked y= "+e.layerY);
}
并且我将来自game.js
类的对象(hole
)显示为:
var hole = new Image();
hole.onload = function() {
ctx.drawImage(hole,135,215,50,50);
}
hole.src = 'images/hole.png';
现在我需要的是:
1)将hole
对象移动到触摸的位置(如设置动画/moveto)
2)在孔中添加一个点击侦听器(我尝试了canvas.addEventListener
,但没有成功)
我找了很多。但无法找到合适的解决方案:(
一些教程说:删除并重新绘制对象以移动它。但我的屏幕上有几个不同形状的图像。
请,请帮我解决这个。。。
您的触摸事件可以这样完成:
var hole = {x: 0, y: 0};
var touchEvents = function(e){
e.preventDefault();
if(e.targetTouches) e = e.targetTouches[0]; // since i like to test with a mouse, but still have it work with touch devices.
hole.x=e.clientX;
hole.y=e.clientY;
};
canvas.onmousemove=touchEvents;
canvas.ontouchmove=touchEvents;
canvas.ontouchstart=touchEvents;
这是从我的js1k条目中快速转换而来的,变量名很短,但也许你可以得到一些提示:http://jsfiddle.net/9J25N/
相关文章:
- 在不移动元件的情况下从相对位置更改为固定位置
- 如何在鼠标悬停时将对象从起始位置移动到结束位置,然后在鼠标悬停后再次移动
- 将插入符号位置移动到ContentEditable<DIV>
- 我发现了一些只在移动设备上可见的垃圾邮件链接,我可以'找不到包含此垃圾邮件链接的脚本的位置
- float's未返回到移动视图结束后的位置
- 将javascript数组中的项移动到特定位置的有效方法
- 如何将节点移动到所需位置
- Photoshop脚本:将图像移动到位置x,y
- Google Maps InfoBubble pixelOffset (从标记上方的默认位置移动)
- 垂直滚动恒星JS上的水平位置移动
- 根据鼠标位置移动(翻译+过渡)全景照片
- 粘性页脚CSS使jQuery小部件在滚动时从各自的位置移动
- 如何使对象向鼠标位置移动
- 在OpenLayers 3中将要素从一个位置移动到另一个位置
- 使用jQuery在相同的位置移动和删除列表框项到另一个列表框
- 悬停时根据光标的位置移动创建的元素
- 使用jquery/angular从一个位置移动到另一个位置
- 动画-相对于当前位置移动
- MapView.标记在用户当前位置移动时不稳定
- 随光标位置移动