0

画像の幅を使ってスプライトの幅を計算しようとしていますが、数値は常に0になりますが、それはなぜですか?

function SpriteSheet(image, numFramesX, numFramesY, totalFrames) {
    this.image = image;
    this.numFramesX = numFramesX;
    this.numFramesY = numFramesY;
    this.totalFrames = totalFrames;

    this.spriteWidth = this.image.width / this.numFramesX;
    this.spriteHeight = this.image.height / this.numFramesY;
}

image.onload = function() {
console.log('Image has been loaded');
}
image.src = 'dance.png';
spritesheet = new SpriteSheet(image, 8, 10, 80);

spritesheet.spriteWidthとspritesheet.spriteHeightは常に0になります。画像の幅を手動で入力すると機能するため、問題を「this.image.width」に追い詰めました。

this.spriteWidth = 880 / this.numFramesX;

それ以外の

this.spriteWidth = this.image.width / this.numFramesX;

コンソールのオブジェクトを使用して計算した場合にも機能します。

spritesheet.image.width / spritesheet.numFramesX

110を生成します

jsfiddle

4

1 に答える 1

2

どのようにそのことについて?

window.onload = function () {
    console.log('Image has been loaded');
    image.src = 'dance.png';
    spritesheet = new SpriteSheet(image, 8, 10, 80);
}
于 2013-02-16T03:32:11.183 に答える