SpriteSheet 类 AS3

Posted

技术标签:

【中文标题】SpriteSheet 类 AS3【英文标题】:SpriteSheet Class AS3 【发布时间】:2014-09-13 23:42:00 【问题描述】:

我想为 ActionScript 3 做我自己的 SpriteSheet 类。

这个类的目的是替代 MovieClip 类,唯一的区别是帧来自 SpriteSheet。我的许多课程都将继承自这个课程。

我的问题是:如果我有一个子类,例如 Ball,它对 Ball 的所有实例使用相同的 SpriteSheet,我想重新使用该 SpriteSheet 以在所有球中使用以节省大量记忆。

【问题讨论】:

Starling 是一个框架,它提供了与您想要完成的功能相似的功能。您可能会发现它在 2D 游戏开发中非常有用。 【参考方案1】:

如果您想为 Ball 的所有实例共享同一个 SpriteSheet,您的 Ball 类不应从 SpriteSheet 类扩展。基类应包含一个SpriteSheet类型的变量,并在创建类时初始化。

所以你需要一个单例类来用字典保存所有的SpriteSheet类,字典的键可能是“Ball”、“MAN_RUN”。SpriteSheet类将包含一个BitmapData列表。

代码可能是这样的

public class Animation 

    private var _spriteSheet:SpriteSheet;

    public function Animation(key:String)
    
        spriteSheet = SpriteSheetMgr.instance.getSpriteSheet(key);
    


private var ball:Ball = new Ball("Ball");

【讨论】:

以上是关于SpriteSheet 类 AS3的主要内容,如果未能解决你的问题,请参考以下文章

EaselJS spritesheet 动画使背景消失

多个小型 spritesheet 或一个巨大的 spritesheet 以提高性能? ---(java游戏开发)[关闭]

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

EaselJS MultiRow Spritesheet

PreloadJS getResult(spriteSheet)

无法导入 json spritesheet