Загрузка листа спрайтов с помощью EaselJS

Будучи новичком в EaselJS, я использовал код из примера «Simple Sprite Sheet», который упакован с исходным zip-файлом. Я пытаюсь загрузить и воспроизвести лист спрайтов, но появляется только первый кадр.

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);
}

Я не думаю, что мне нужна функция тикера, потому что я не регистрирую никаких событий, я просто играю с instance1, кадры и холст имеют одинаковый размер, и анимация воспроизводится, если я заменяю animate.gotoAndPlay("instance1"); на animate.play("instance1");, но циклы . Какие-либо предложения? Заранее спасибо.


person dcd0181    schedule 27.05.2012    source источник


Ответы (1)


Кажется, я ответил на этот вопрос на другом сайте.

Проблема в том, что формат таблицы спрайтов неверен. Свойство «animations» — это объект, содержащий именованные анимации с начальным и конечным кадром. В этом примере начальный и конечный кадр единственной анимации — [0,0], а свойство «images» находится внутри объекта анимации. Правильный формат можно увидеть здесь:

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"]);
});

Я надеюсь, что это поможет кому-то еще с той же проблемой. Ваше здоровье,

person Lanny    schedule 31.05.2012
comment
Спасибо, Лэнни, я думаю, вы ответили на мой вопрос из группы EaselJS в Google. Все еще экспериментируя, я столкнулся с еще одной проблемой при использовании нескольких холстов и разных кадров в секунду, если бы вы могли взглянуть, я был бы очень признателен stackoverflow.com/questions/10861247/ - person dcd0181; 02.06.2012