我一直在寻找答案,但我发现很难找到像这样的具体问题的答案。可能是因为我没有正确理解某些东西,但不管它是什么,我希望你能提供帮助! :)
我有一个名为Panda的类,它扩展了一个名为Player的类。 我还有一个名为Enemy的类,它接受一个Player作为参数。 Enemy类实际上需要访问Panda类的属性,但由于我想创建多个扩展Player类的类并将传递给Enemy类,因此Enemy接受了Player类的参数。
但是,当我尝试访问属于Panda类而不是Player类的任何内容时,它会给我1119错误:访问可能未定义的属性...
为什么这样,我如何设置我的代码,以便我可以传递扩展Player类的各种类,并访问它们的属性,而不会得到这个1119错误?
(嗯。子类和超类......我正在使用这些术语,对吗?)
这些链接帮助我理解下面的答案。谢谢你的帮助!
答案 0 :(得分:0)
访问Panda类的属性时,必须输入cast:
private var _player:Player;
public Enemy(player:Player) {
_player = player;
const panda:Panda = _player as Panda;
if (panda) {
setPlayerIsPanda(panda);
}
}
private function setPlayerIsPanda(panda:Panda):void {
// do panda stuff
}