-2
Поэтому у меня есть следующий код:AS3 1009 где ошибка?
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Stage;
import flash.events.Event;
public class Meteorek extends MovieClip {
private var scena:Stage;
public function Meteorek(scena:Stage,x:Number, y:Number ,z:Number): void {
this.x = scena.stageWidth/2;
this.y = scena.stageHeight/2;
this.z = 1100;
addEventListener(Event.ENTER_FRAME, lasMeto ,false, 0, true);
}
public function lasMeto(e:Event):void{
z -= 10;
if(z<-100)
{
UsunZeScen();
}
}
private function UsunZeScen() : void
{
removeEventListener(Event.ENTER_FRAME, lasMeto);
if (scena.contains(this))
scena.removeChild(this);
}
}
}
В конце я получил сообщение об ошибке. И я не знаю, почему. У меня такой же код в другом классе, и все работает нормально, так что с этим не так? T Ошибка возникает при:
scena.removeChild(this)
Потому что это слишком большой.
Добро пожаловать в [SO]; пожалуйста, прочитайте [faq]. Было бы хорошо, если бы вы потратили немного дополнительного времени, чтобы проверить свою пунктуацию и орфографию. – zzzzBov
Ошибка # 1009 означает, что вы пытаетесь использовать или получить доступ к переменной, которая равна null. Если ошибка возникает при попытке выполнить 'scena.removeChild (this);' это будет означать, что 'scena' равно null. Но невозможно, чтобы 'scena' был нулевым в вашем коде, потому что он передается в конструктор ** и ** конструктор использует его для получения stageWidth. Если вы запустите свой код с помощью отладочного Flash Player, он получит точный номер строки, где происходит ошибка. –