【发布时间】:2012-03-02 17:31:15
【问题描述】:
我在这里有一个小问题我试图解决。当我开始使用 HTML5 和 Canvas 制作动画时,我希望有一个恒定的动画流,并且还能够在不中断动画流的情况下捕捉鼠标移动。现在这似乎是个问题。我会带 我的测试代码中的一些代码在这里。
function mainInit()
{
canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
ballArray.push(new Ball(30,30,2,4,15,"#EEEEEE"));
setInterval(drawScene,20);
}
function drawScene()
{
// main drawScene function
clear(); // clear canvas
// draw animated objects
for(var i = 0; i < ballArray.length; i++)
{
ballArray[i].draw();
}
Event_MouseMove();
}
var messageMousePos = '';
function Event_MouseMove()
{
canvas.addEventListener('mousemove', function(evt)
{
var mousePos = getMousePos(canvas, evt);
messageMousePos = "Mouse position: " + mousePos.x + "," + mousePos.y;
context.font = '10pt Calibri';
context.fillStyle = 'black';
context.fillText(messageMousePos , 5, 15);
}, false);
}
问题在于,当我移动 eventListner 以进行鼠标移动时,会覆盖绘制间隔并使其变得更慢。我应该如何/在哪里放置鼠标事件的代码,这样它就不会中断这个绘制间隔,但仍然根据间隔绘制鼠标事件?
【问题讨论】:
标签: html animation canvas mousemove interrupt