キャンバスを強制的に更新する方法はありますか?読み込み中のメッセージを表示したいのですが、ゲームが表示される前に読み込みがロックされます。load関数を呼び出す前に、キャンバスに「今すぐ描画」するように指示する必要があるように感じますが、別の方法があるかもしれません...
編集:
わかりました。明確にするために、私は非常に小さな汚いスクリプトを作成しました(お茶の時間にできる最善のこと: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();のようなコマンドが必要でした。緑の四角を描いた後、「今すぐ更新してください!待ってはいけません!」と伝えます。しかし、返信から判断すると、これは問題を処理する方法ではありません。
私は何をすべきか?:)