1

正如标题所说,当画布元素的内容被重绘时,我需要一个通知。这可能吗?

如果没有,当整个页面被重绘时的通知也是可以的(reDRAWN no​​t reLOADED!)。

我需要这个的原因是我想获得在画布内运行的动画的当前 FPS。

4

1 回答 1

3

Canvas 本身没有“重绘”方法或事件。该架构是这样的,任何时候,任何功能都可以在上下文中绘制。但是,一种可能的解决方案是“覆盖”标记新框架绘制的特定函数。具体来说,我认为覆盖 context.clearRect 将是要走的路。

var context=canvas.getContext('2d');
context._clearRect=context.clearRect;
context.clearRect=function(x,y,w,h){
    context._clearRect(x,y,w,h);
    //do your stuff here
};

此方法的唯一问题是它假定每帧只调用一次 clearRect。但是,只要是这种情况,那么上面的代码就可以工作。

于 2010-04-01T12:45:59.987 回答