![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2011
Сообщений: 247
|
Вроде всегда нормально удалялись спрайты, но не сейчас
![]() вот код : private function eFrameEvents(e:Event):void { if(loaded2){ loaded2 = false; var newBullet = new Sprite(); newBullet.graphics.beginFill(0xFFFFFF); newBullet.graphics.drawCircle(0,0,2); newBullet.graphics.endFill(); newBullet.x = turret.x; newBullet.y = turret.y; newBullet.addEventListener(Event.ENTER_FRAME,eFrame); addChild(newBullet); } } private function eFrame(e:Event):void { var newBullet2:Sprite = Sprite(e.target); if(newBullet2.hitTestObject(enTarget)){ enTarget.health -= damage; removeEventListener(Event.ENTER_FRAME, eFrame); newBullet2.parent.removeChild(newBullet2);//<-- тут ошибка } } OutPut:Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". |
|
|||||
|
Объект уже не имеет родителя
Добавлено через 1 минуту а причина вот
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 247
|
Цитата:
![]() Чтобы не создавать токую же тему отпишу здесь сразу второй вопрос) вот код : private function eFrameEvents(e:Event):void { var turret:Sprite = Sprite(e.target); enTarget = null; for(var i:int=enemyHolder.numChildren-1;i>=0;i--){ var cEnemy =enemyHolder.getChildAt(i); if (Math.sqrt(Math.pow(cEnemy.y - turret.y, 2) + Math.pow(cEnemy.x - turret.x, 2)) < 100) { enTarget = cEnemy; } } if(enTarget != null){ turret.rotation = Math.atan2((enTarget.y-turret.y), enTarget.x-turret.x)/Math.PI*180 - 90; if(loaded2){ loaded2 = false; var newBullet = new Sprite(); newBullet.graphics.beginFill(0xFFFFFF); newBullet.graphics.drawCircle(0,0,2); newBullet.graphics.endFill(); newBullet.x = turret.x; newBullet.y = turret.y; newBullet.addEventListener(Event.ENTER_FRAME,eFrame); addChild(newBullet); } } } private function eFrame(e:Event):void { var newBullet2:Sprite = Sprite(e.target); var yDist:Number=enTarget.y+12.5 - newBullet2.y;//<-- тут ошибка на "enTarget" var xDist:Number=enTarget.x+12.5 - newBullet2.x; var angle:Number=Math.atan2(yDist,xDist); ySpeedBul=Math.sin(angle) * maxSpeedBul; xSpeedBul=Math.cos(angle) * maxSpeedBul; newBullet2.x+= xSpeedBul; newBullet2.y+= ySpeedBul; if(newBullet2.hitTestObject(enTarget)){ enTarget.health -= damage; if(newBullet2.parent){ newBullet2.parent.removeChild(newBullet2); } removeEventListener(Event.ENTER_FRAME, eFrame); } } //Output:Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". |
|
|||||
|
вы не отписываетесь от события
вместо надо Я же писал. а почему нет enTarget я не знаю, проверяйте что он существует или логику чините.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 247
|
Спасибо, еще рас GBee.
также нашел выход и со второй ситуации. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|