有什么办法强制画布更新?我想显示一条加载消息,但游戏在显示之前锁定加载。我觉得我需要告诉画布“现在画”加载函数被调用之前,但也许是有另一种方式......强制画布更新
编辑:
OK,只是要清楚,我已经写一个非常小的肮脏的脚本(最好我可以在我的茶歇: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()这样的命令;在我画绿色方块告诉它“现在更新!不要等待!”之后但从答复来看,这不是解决问题的方法。
我该怎么办? :)
和你的代码?我们怎么知道你甚至没有一些示例代码就可以画出来。 – Joseph
我已经编辑了一个示例脚本:) –
可能重复[如何强制在画布中更新显示](http://stackoverflow.com/questions/4982631/how-to-force-a-display-画布更新) –