我正在尝试删除名为'_pokemon'的对象。如果它被称为'_jednaLinia'(意为'_oneLine')的降雨击中十次就应该被移除。我确实使用了这段代码,是的,我的_pokemon确实消失了,但仍然可以在handleColisin函数中检测到它。主类仍然继续引用它,因为我在Pokemon类上得到了这个错误
错误#1009:无法访问空对象引用的属性或方法。
我退出了AS3的新手并尝试了许多简单的解决方案,但似乎没有任何工作方式。 如果可能请回答。
## some code I think is necessary, not all of it
...
public class Main extends Sprite
{
private var _pokemon:Pokemon;
public function Main():void
{
_starTimer = new Timer(30);
addEventListener(Event.ADDED_TO_STAGE, init);
_starTimer.addEventListener(TimerEvent.TIMER, start);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
_starTimer.start();
this.addChild(_pokemon);
}
...and further...
private function _pokemonLive(e:Event = null):void
{
decreaseLive--;
if (decreaseLive == 0)
{
_pokemon.parent.removeChild( _pokemon );/i think i tried all methods
_starTimer.stop();
}
}
就像我提到的那样。我在Pokemon Class上遇到错误,它有随机移动功能。这是错误1009显示的地方。如有必要,我会发送更多代码。
答案 0 :(得分:0)
将'dead'布尔值添加到'Main'类。
更改
private function _pokemonLive(e:Event = null):void
{
decreaseLive--;
_pokemon.parent.removeChild( _pokemon );
_starTimer.stop();
}
到
private function _pokemonLive(e:Event = null):void
{
if(dead == false)
{
decreaseLive --;
if (decreaseLive == 0)
{
dead = true;
_pokemon.parent.removeChild( _pokemon );/i think i tried all methods
_starTimer.stop();
}
}
}