如何处理从IDrawable更新动画?

时间:2011-08-16 23:40:30

标签: interface

我有两个接口,IDrawable和IUpdateable。一些具体的drawables是可更新的,但不是全部。例如,带有动画的精灵实现了IDrawable和IUpdateable,但静态图像只实现了IDrawable。

问题很明显......我怎么可能只用IDrawable引用来更新动画?如果我将一个Sprite传递给Button来使用它作为图形表示,那么Button就会保持静态,因为它无法推进它的精灵动画。

想法?

1 个答案:

答案 0 :(得分:0)

解决方案是定义一个新的抽象:

public interface IXXXObject {
   IDrawable Drawable { get; } // return null if not support IDrawable
   IUpdatable Updatable { get; } // return null if not support IUpdatable
}

所有对象都应该实现此接口。 现在您应该将对象作为IXXXObject传递,如果它支持,您可以调用一个功能。