原本就在猜測,可能是因為 CanvasContext 物件還沒來得及在場景中完全建立好,就開始繪圖所產生指令下了,卻看不到圖的問題,今天想到一招,那就讓繪圖指令延遲一下下好了,例如,在百分之一秒後再執行繪圖指令:
如果原來是:
ctx.fillStyle = "#ff0000";
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(300, 0);
ctx.lineTo(300, 300);
ctx.lineTo(0, 300);
ctx.closePath();
ctx.fill();
就利用 setTimeout 來延遲繪圖指令:
setTimeout( function() {
ctx.fillStyle = "#ff0000";
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(300, 0);
ctx.lineTo(300, 300);
ctx.lineTo(0, 300);
ctx.closePath();
ctx.fill();
}, 10);
最後的 10 ,讓 funtion() 中的指令在 10/1000 秒後才執行。
至於要延遲多少時間,可以自行再調整。
先用這樣解決了眼前的問題,再看看有沒有更好的方法可用。
沒有留言:
張貼留言