我想为ActionScript 3做自己的SpriteSheet类。
这个类的目的是替换MovieClip类,唯一的区别是帧将来自SpriteSheet。我的许多课程都将从这门课程开始。
我的问题是:如果我有一个子类,例如Ball,对所有Ball实例使用相同的SpriteSheet,我想重新使用SpriteSheet在所有球中使用以节省大量的存储器中。
答案 0 :(得分:0)
如果要为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");