【问题标题】:EaselJS spritesheet animation isn't visible on canvas, but there are no errorsEaselJS spritesheet 动画在画布上不可见,但没有错误
【发布时间】:2013-10-31 04:47:35
【问题描述】:

我正在创建一个游戏,我想在其中使用使用 easeljs 和 spritesheet 的动画。我使用下面的代码来执行此操作,但动画似乎没有出现在我的画布上。这很奇怪,因为也没有错误。我做错了什么?

我的代码:

    stage = new createjs.Stage(canvas);

    sprite = new createjs.SpriteSheet({
    "images": ["./images/vos.png"],
    "frames": [[0, 0, 32, 32, 0, 0, 0], 
              [32, 0, 32, 32, 0, 0, 0], 
              [64, 0, 32, 32, 0, 0, 0], 
              [96, 0, 32, 32, 0, 0, 0]],
    "animations": {"all": {"frames": [0, 1, 2, 3, 2, 1, 0]}

            }
    });

    vos = new createjs.BitmapAnimation(sprite);

    vos.x = 32 + (Math.random() * (canvas.width - 64));
    vos.y = 32 + (Math.random() * (canvas.height - 64));      

    speed=8;

    createjs.Ticker.addListener(window);
    createjs.Ticker.setFPS(24);

    stage.addChild(vos);

    vos.gotoAndPlay('all');

【问题讨论】:

    标签: javascript easeljs sprite-sheet createjs


    【解决方案1】:

    您正在使用已弃用的 addListener 方法,并告诉它在 window 上查找 tick 方法:

    createjs.Ticker.addListener(window);
    

    你应该改用这个:

    createjs.Ticker.addEventListener("tick", function() {
        stage.update();
    });
    

    If it does not work, you should take a look here.

    【讨论】:

    • 只更新舞台的刻度方法的更好方法是将舞台添加为侦听器。 Stage 有一个handleEvent 方法,当接收到tick 事件时会自动更新stage。
    猜你喜欢
    • 2014-06-28
    • 2013-03-17
    • 2013-03-24
    • 2012-11-11
    • 2015-06-09
    • 2016-10-01
    • 2016-12-24
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多