2 つの異なる場所でローダー メソッドを使用して読み込まれた画像を描画しています。しかし、それは2番目のものだけを表示します。(私はこれに従っています http://www.html5canvastutorials.com/tutorials/html5-canvas-image-loader/)
alert() を追加すると、Fx では機能しますが、Chrome では機能しません。alert() なしでどこでも動作するようにしたい
プリロードされた画像を使用せずに画像を描画しようとすると、望ましい結果が得られます。しかし、私はそれが余分な負荷だと思っています (http://www.html5canvastutorials.com/tutorials/html5-canvas-images/)
ImageOnload("O",120,120); //この画像は表示されていません
alert("アラートを追加すると、Fx でのみ機能し、Chrome では機能しません")
ImageOnload("O",120,20);//これだけが表示されています???
<html>
<head>
</head>
<script type="text/javascript" >
var ctx;
var ImageVariable={};
window.onload= function()
{
var canvas = document.getElementById("gameLoop");
ctx = canvas.getContext("2d");
ImageBuilder(ImageSourceDB);
ImageOnload("O",120,120); //This image is not displaying
//alert("If i add alert it works only in FFox but not in chrome")
ImageOnload("O",120,20);
}
var ImageSourceDB=
{
X:"./Images/X.gif",
O:"./Images/O.gif"
}
function ImageBuilder(ImageSrcDB)
{
for (iSrc in ImageSrcDB)
{
ImageVariable[iSrc]= new Image();
ImageVariable[iSrc].src = ImageSrcDB[iSrc];
}
}
function ImageOnload(ImageSrc,x,y)
{
ImageVariable[ImageSrc].onload= function ()
{
ctx.drawImage(ImageVariable[ImageSrc],x,y);
};
ImageVariable[ImageSrc].src = ImageSourceDB[ImageSrc];
}
</script>
<body>
<canvas class ="pattern" id="gameLoop" height="300" width="300" />
</body>
</html>
リスト項目