2011-08-16 26 views
0

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

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

想法?

回答

0

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

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

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