EaselJS spritesheet 动画在画布上不可见,但没有错误

Posted

技术标签:

【中文标题】EaselJS spritesheet 动画在画布上不可见,但没有错误【英文标题】:EaselJS spritesheet animation isn't visible on canvas, but there are no errors 【发布时间】: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');

【问题讨论】:

【参考方案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。

以上是关于EaselJS spritesheet 动画在画布上不可见,但没有错误的主要内容,如果未能解决你的问题,请参考以下文章

在 EaselJS 中为 spritesheet 设置动画时遇到问题

Spritesheet 动画 easeljs-0.7.1.min.js

在 EaselJS 中缓存 SpriteSheets

CreateJs EaselJS spritesheet 框架不起作用

EaselJS SpriteSheet 没有响应 gotoAndPlay

EaselJS 动画虽然基于当前帧的帧