"alert(stepHor);"私のキャンバスには何も描かれません。しかし、私が警告(stepHor)を聞かせたら、すべてが期待どおりに完全に行きます。そのようなもののimg.onloadがあったら、私は理解するだろうが、ここでは私は理解しないだろう。それは "閉鎖"と関係がありますか?前もって感謝します。キャンバスが描画されていないhtml5(javascript、closures)
function draw(imageData) {
var canvas=document.getElementById('bg');
if(canvas.getContext){
var ctx=canvas.getContext('2d');
ctx.scale(0.4,0.4);
var stepHor=Math.floor(imageData.width/imax);
var stepVer=Math.floor(imageData.height/jmax);
alert(stepHor);
for(i=0;i<=imax;i++){
for(j=0;j<=jmax;j++){
var index=(j*stepVer+Math.floor((imageData.height-jmax*stepVer)/2))*(4*imageData.width)+(i*stepHor*4)+Math.floor((imageData.width-imax*stepHor)/2)*4;//the first 'Math.floor' member is to center the image vertically, the second 'Math.floor' member is to center the image horizontally
var red=imageData.data[index];
var green=imageData.data[index+1];
var blue=imageData.data[index+2];
var alpha=imageData.data[index+3];
ctx.fillStyle='rgb(' +red+ ',' +green+ ',' +blue+ ')';
ctx.fillRect(wireWidth*i,wireHeight*j,wireWidth,wireHeight);
}
}
}
}
場合は/どのようにこのビーイング関数が呼び出された10msの反応速度を持つロボットでない限りinitにブラウザの十分な時間を与えますか? 'imax'変数はどこから来ますか? – ManseUK
imaxとjmaxはグローバル変数であり、以下のように定義します: 'var imax = Math.floor($(window).width()/ wireWidth); "wire"は実際にグローバル変数で定義するサイズの "ピクセル"です – user1011444