-1
我是一个相当新的AS3编程,并开始使用相当古老的MJW AvoiderGame教程。由于本教程有点旧,在学习AS3时遇到了很多错误。现在我收到了一个我无法弄清楚的错误。错误#1009与AS3
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at AvoiderGame/onTick()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
这个问题似乎是在AvoiderGame类的onTick函数中。这里是AvoiderGame类:
package
{
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class AvoiderGame extends MovieClip
{
public var army:Array;
public var enemy:Enemy;
public var avatar:Avatar;
public var gameTimer:Timer;
public var gameClock:Clock;
public function AvoiderGame()
{
army = new Array();
var newEnemy = new Enemy(200, -15);
army.push(newEnemy);
addChild(newEnemy);
avatar = new Avatar();
addChild(avatar);
avatar.x = mouseX;
avatar.y = mouseY;
gameTimer = new Timer(25);
gameTimer.addEventListener(TimerEvent.TIMER, onTick);
gameTimer.start();
}
public function onTick(timerEvent:TimerEvent):void
{
gameClock.addToValue(25);
if (Math.random() < 0.1)
{
var randomX:Number = Math.random() * 800;
var newEnemy:Enemy = new Enemy(randomX, -15);
army.push(newEnemy);
addChild(newEnemy);
gameScore.addToValue(10);
}
avatar.x = mouseX;
avatar.y = mouseY;
for each (var enemy:Enemy in army)
{
enemy.moveDownABit();
if (avatar.hitTestObject(enemy))
{
gameTimer.stop();
dispatchEvent(new AvatarEvent(AvatarEvent.DEAD));
}
}
}
public function getFinalScore():Number
{
return gameScore.currentValue;
}
public function getFinalClockTime():Number
{
return gameClock.currentValue;
}
}
}
'公共var gameClock:时钟;'你在哪里实例化? – Marijn