강제로 캔버스를 업데이트하는 방법이 있습니까? 로드 메시지를 표시하고 싶지만 게임이 표시되기 전에로드가 잠겨 있습니다. 나는 부하 함수가 호출되기 전에 "지금 그리기"캔버스 말할 필요 같은 느낌,하지만 어쩌면 다른 방법이 ...강제 캔버스 업데이트
이가 편집이 :
이 좋아, 단지 명확하게하기 위해 내가 쓴 아주 작은 더러운 스크립트 (내가 내 차 휴식에서 할 수있는 최선 : 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- 캔버스 업데이트) –