У меня ошибка # 1009: не удается получить доступ к свойству или методу пустой ссылки на объект. Я не совсем уверен, как решить эту проблему сам, я проследил, чтобы увидеть, является ли объект var врагиSpawnTimer: Таймер на самом деле ноль, и это не так. Поэтому я не понимаю, почему я получаю эту ошибку.
В любом случае, вот мой код, это класс, который я использую для порождения блоков, которые падают сверху вниз и удаляются со сцены, как только достигают нижней части экрана.
package scripts
{
import flash.events.Event;
import flash.display.Stage;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.display.DisplayObject;
public class EnemySpawner
{
var stageRef:Stage;
var target:Player;
//vector variables
public static var vectorBlock:Vector.<Block> = new Vector.<Block>();
//enemy variables
public static var block:Block;
//timer variables
var enemySpawnTimer:Timer = new Timer(250);
//score variables
public static var pointsBlock:Number = 0;
public function EnemySpawner(stageRef:Stage, target:Player)
{
this.stageRef = stageRef;
this.target = target;
enemySpawnTimer.addEventListener(TimerEvent.TIMER, SpawnBlocks, false, 0, true);
enemySpawnTimer.start();
}
private function SpawnBlocks(e:TimerEvent):void
{
block = new Block(stageRef);
pointsBlock = block.pointsGiven;
vectorBlock.push(block);
stageRef.addChild(block);
block.addEventListener(Event.ENTER_FRAME, Update, false, 0, true);
}
private function Update(e:Event):void
{
//remove enemies when they pass the bottom of the stage
for each(var block:Block in vectorBlock)
{
if(block.y > Bounds.rectH + block.height)
{
RemoveFromList(block);
}
}
target.addEventListener("playerDeath", StopSpawning, false, 0, true);
}
private function RemoveFromList(block:Block):void
{
vectorBlock.splice(vectorBlock.indexOf(block), 1);
if(stageRef.contains(block))
{
stageRef.removeChild(block);
}
}
private function StopSpawning(e:Event):void
{
enemySpawnTimer.stop();
}
}
}
Это ошибка, которую я получаю, к сожалению, использование редактора сценариев во флэш-памяти не слишком помогает в том, где и что именно вызывает ошибку.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at scripts::EnemySpawner/SpawnBlocks()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()