1

EaselJS は初めてなので、ソース zip ファイルにパッケージ化されている「Simple Sprite Sheet」の例のコードを使用しました。スプライト シートを読み込んで再生しようとしていますが、最初のフレームしか表示されません。

function init() {
    var stage = new Stage(document.getElementById("canvas"));
    var ss = new SpriteSheet({
        "frames": {
            "width": 159,
            "numFrames": 71,
            "regX": 0,
            "regY": 0,
            "height": 85
        },
        "animations":{
            "instance1": [0, 0], 
            "images": ["./assets/spritesheet.png"]
        });

    var animate = new BitmapAnimation(ss);
    animate.x = 0;
    animate.y = 0;

    ss.getAnimation("instance1").frequency = 2;
    ss.getAnimation("instance1").next = "instance1";
    animate.gotoAndPlay("instance1");


    stage.addChild(animate);
    Ticker.setFPS(60);
    Ticker.addListener(stage);
}

イベントを登録していないため、ティッカー関数は必要ないと思います。インスタンス 1 から再生しているだけです。フレームとキャンバスはどちらも同じサイズで、アニメーションは , で置き換えるanimate.gotoAndPlay("instance1");と再生されanimate.play("instance1");ますが、ループします。助言がありますか?前もって感謝します。

4

1 に答える 1

2

私は別のサイトでこれに答えたと思います。

問題は、スプライト シートの形式が間違っていることです。「animations」プロパティは、開始フレームと終了フレームを持つ名前付きのアニメーションを含むオブジェクトです。この例では、唯一のアニメーションの開始フレームと終了フレームは [0,0] で、"images" プロパティは animations オブジェクト内にあります。正しい形式は次のとおりです。

https://github.com/CreateJS/EaselJS/blob/master/examples/SimpleSpriteSheet.html

var ss = new SpriteSheet({
    "frames": {
        "width": 159,
        "numFrames": 71,
        "regX": 0,
        "regY": 0,
        "height": 85
    },
    "animations":{
        "instance1": [0, 25] // sample end frame is "25"
    },
    "images": ["./assets/spritesheet.png"]);
});

同じ問題を抱えている他の人に役立つことを願っています。乾杯、

于 2012-05-31T17:44:52.667 に答える