画架 Movieclip 与 Sprite

easeljs Movieclip vs Sprite

我是画架 js 的新手。当我们使用adobe flash cc将一个flash/AS3项目转为HTML5Canvas项目时,动画和movieclip就会变成easeljs Movieclip。但是在easeljs中我们可以使用Sprite来展示动画。但是使用 movieclip 很容易,因为 flash 会生成它。

我的问题是,就性能而言,使用 easeljs Sprite 而不是 easeljs Movieclip 是否有任何好处?

Sprite 和 MovieClip 在 EaselJS 中是完全不同的。

  • 在 Flash 中,MovieClips 扩展了 Sprites,因此它们具有相似的功能。
  • 在 EaselJS 中,Sprite 显示 SpriteSheet, and a MovieClip is a content Container 的帧,它理解 的概念,包括时间轴和帧动作。

MovieClips 通常只与 Flash CC 输出一起使用,尽管您可以手动制作它们。理想情况下,Flash 也可以在有意义时导出 Sprites 和 SpriteSheets - 但是由于 Flash 时间轴动画的性质,这将非常难以确定何时以及如何导出 Sprites/SpriteSheets 与 MovieClips。

严格来说,Sprites 的性能应该更好,因为它们对所有帧都使用单个(或几个)位图,从而获得 GPU 优势。当 GPU 切换纹理时,多个大图像(发生在不同的 sprite 上,或者只是单个 sprite 上有很多跨图像的大帧)实际上会导致性能问题。

还有一个 SpriteSheetBuilder class (and example) 您可以参考,它采用 Flash CC 输出,并生成一个 运行-time SpriteSheet,为您提供 Sprites 的性能优势,与Flash CC 的复杂 vector/image 输出。

希望事情能有所澄清。