5.7.5 处理小球
在本例中,需要在Canvas上监听一个鼠标点击事件。当用户点击时,创建一个小球,并且小球会在画布上飞向箱子堆。首先需要做的事是为mouseup事件创建一个事件监听器。
theCanvas.addEventListener("mouseup",createBall, false);
接下来,需要创建createBall()函数。首先,从传递给createBall()函数的event对象中获取鼠标点击位置的x轴和y轴坐标。然后运用一些可以跨浏览器运行的代码计算出鼠标指针与Canvas的相对位置。下面的范例代码可以获得鼠标指针在画布上正确的x轴和y轴的坐标。
function createBall(event) {
var x;
var y;
if (event.pageX || event.pageY) {
x = event.pageX;
y = event.pageY;
}
else {
x = e.clientX + document.body.scrollLeft +
document.documentElement.scrollLeft;
y = e.clientY + document.body.scrollTop +
document.documentElement.scrollTop;
}
x -= theCanvas.offsetLeft;
y -= theCanvas.offsetTop;
mouseX=x;
mouseY=y;
因为捕获的x轴和y轴坐标是相对于Canvas的,所以需要确保HTML页面中的