【发布时间】:2011-11-13 00:15:53
【问题描述】:
我有一些关于 JavaScript 循环的问题。
问题:
- 为什么 JavaScript 循环会冻结浏览器
- 为什么绘制速度很慢,即使它以每 1 毫秒绘制 1 次的速度运行,而且绘制的是最简单的东西!
- 有什么解决办法? flash 快要死了,我们现在该怎么办?
这是你自己尝试的画布代码:
<!doctype html>
<html>
<head>
</head>
<body>
<canvas id="c" width="400" height="400"></canvas>
<script type="text/javascript">
var c = document.getElementById( 'c' );
ctx = c.getContext( '2d' );
var x = 100;
ctx.fillStyle= '#f00';
function loop()
{
ctx.fillRect( x, 100, 20, 20 );
++x;
}
setInterval( loop, 1 );
</script>
</body>
</html>
【问题讨论】:
-
你的电脑有多牛?听起来不太强大
-
@AustinHenley 不过它会被 HTML5 取代,因为它是一个更合适的工具
-
不要使用
setInterval()替换为window.requestAnimationFrame()
标签: javascript html canvas game-loop