有没有办法强制画布更新?我想显示一条加载消息,但游戏在显示之前锁定了加载。我觉得我需要在调用加载函数之前告诉画布“立即绘制”,但也许还有另一种方法......
编辑:
好的,为了清楚起见,我写了一个非常小的脏脚本(我可以在茶歇时做的最好的事情:P)来展示我想要克服的东西。这里:
<html>
<head>
<title>test page</title>
</head>
<body onload="init();">
<canvas id="cnv" width="300" height="300">
canvas not supported.<br/>
</canvas>
</body>
</html>
<script type="text/javascript">
var ctx;
function init()
{
var canvas = document.getElementById('cnv');
ctx = canvas.getContext('2d');
ctx.fillStyle = "rgb(255, 0, 0)";
ctx.fillRect(0,0,300,300);
FakeLoad();
ctx.fillStyle = "rgb(0, 255, 0)";
ctx.fillRect(0,0,300,300);
}
function FakeLoad()
{
var d = new Date();
var start = d.getTime();
while (new Date().getTime() - start < 5000)
{
//emulate 5 secs of loading time
}
}
</script>
现在的想法是脚本应该绘制一个红色方块以显示其“正在加载”,并在完成后绘制一个绿色方块。但是,如果将其复制到 html 文件中,您将看到的只是 5 秒的暂停,然后出现绿色,而不是红色。在我的脑海中,我想要一些命令,比如 ctx.Refresh(); 在我画出绿色方块告诉它“现在更新!不要等待!”之后 但从回复来看,这不是处理问题的方法。
我应该怎么办?:)