接口也是显示对象

red*_*ory 1 actionscript-3

我有一些实现接口的类,但也扩展了Sprite类:

package {
    public interface IState {
        function addMonster():void;
    }
}

package {
    public class Fuzzy extends Sprite implements IState {
        public function addMonster():void {

        }
    }
}

package {
    public class LizardSkin extends Sprite implements IState {
        public function addMonster():void {

        }
    }
}

// Document class 

package {
    public class Main extends MovieClip {
        private var state:IState;
        public function Main():void {
            state = new Fuzzy();

            addChild(state);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试addChild(state)时,我不断收到错误消息1067:将类型IState的值隐式强制转换为不相关的类型flash.display:DisplayObject.

现在我知道我已经看过一个类扩展了MovieClip/Sprite并实现了一个接口的例子......我能做些什么才能让它为舞台添加"状态",同时实现我想要的方法?

Bol*_*ock 5

一个简单的演员阵容应该在大部分时间内完成:

addChild(state as DisplayObject);
Run Code Online (Sandbox Code Playgroud)

编译器会引发该错误,否则因为它不假设IState总是通过某个东西实现DisplayObject,但是如果你可以保证你总是可以强制转换的条件.