有什麼辦法強制畫布更新?我想顯示一條加載消息,但遊戲在顯示之前鎖定加載。我覺得我需要告訴畫布「現在畫」加載函數被調用之前,但也許是有另一種方式......強制畫布更新
編輯:
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-畫布更新) –