javascript - 在 SpriteStage 上使用 SpriteSheet 渲染的动画无法正确显示

标签 javascript canvas createjs

我正在使用 Sprite Sheet 构建器从通用 MovieClip 生成 SpriteSheet 类型对象。之后,我使用 SpriteSheet 创建一个 Sprite 类型的对象,其中包含时间线,并将其添加到 SpriteStage 中,如下所示:

 var spriteStage = new createjs.SpriteStage(canvas);
 var sprite = new createjs.Sprite(spriteSheet);
 spriteStage.addChild(sprite);
 sprite.play();
 createjs.Ticker.addEventListener("tick", spriteStage);

问题是:由此产生的结果是一个损坏的动画。看起来只显示了几帧,并且动画要么非常快地循环这几帧,要么根本不执行任何操作。

在tick更新函数上使用console.log(sprite.currentFrame)我可以看到所有帧都以每秒30的速率递增,但实际显示的内容与这个。

请注意,使用普通的 Stage 添加和播放 Sprite 动画效果很好。另外,根据 Chrome://gpu,WebGL 已启用,因此这也不是问题。

最佳答案

SpriteStage 需要 SpriteContainer,它引用 Sprite 可以使用的单个图像。 http://www.createjs.com/docs/easeljs/classes/SpriteContainer.html

这是一种较旧的 WebGL 方法,因此您可能对 StageGL 感兴趣,这是一种新的 EaselJS 方法,我们正在进行 beta 测试,应该很快就会发布。基本上它的工作原理与 Stage 相同,但接受更多内容(并且速度更快!)。请注意,上面的方法更符合 StageGL 的工作方式。

GitHub中有一个分支:https://github.com/CreateJS/EaselJS/tree/StageGL-beta

我们仍在完善文档和演示(由于其他优先事项而被推迟),但希望尽快对此进行标记。

关于javascript - 在 SpriteStage 上使用 SpriteSheet 渲染的动画无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40616391/

相关文章:

javascript - 我如何检查 Angular 中的 Mobx 商店是否为空?

javascript - Jquery上下文菜单调用函数

javascript - 如何查找一个点是否在另一个点的楔子中javascript

javascript - createjs:是否可以调整文本?

javascript - 如何在函数中使用 $(this) ?

javascript - 我可以在 JS 中查看 cookie 域特异性吗?

javascript - NS_ERROR_NOT_AVAILABLE : Component is not available

javascript - Canvas Spark 线

javascript - 在开始动画之前预加载所有声音和图像

javascript - EaselJS 的碰撞问题