这是我的错误,当鸭子或电影剪辑击中它从右向左移动的屏幕时,它会消失,但它会消失并显示我的错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Duck/ducksmove()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
我不知道如何解决这个错误,因为我还是新手,所以这不是我的主要动作,但它是我在动作脚本3.0中的鸭子动作 包{
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
public class Duck extends MovieClip {
var moveDuck:Timer = new Timer(10);
var speedX:Number;
public function Duck() {
this.addEventListener(MouseEvent.CLICK,KillDuck);
moveDuck.addEventListener(TimerEvent.TIMER,ducksmove);
moveDuck.start();
speedX = 10;
}
function ducksmove(evt:TimerEvent):void
{
this.x -= speedX;
if (this.x <=0)
{
moveDuck.stop();
moveDuck.removeEventListener(TimerEvent.TIMER,ducksmove);
this.parent.removeChild(this);
}
}
function KillDuck(evt:MouseEvent):void
{
var p:MovieClip = this.parent as MovieClip;
p.setScore();
p.updatecount();
this.removeEventListener(MouseEvent.CLICK,KillDuck);
this.parent.removeChild(this);
moveDuck.addEventListener(TimerEvent.TIMER,ducksmove);
}
} }
答案 0 :(得分:0)
在最后一个函数killDuck中执行此操作:
this.parent.removeChild(this);
该对象不再存在,因此如果您向Timer moveDuck添加一个事件,当它被调用时,它会尝试移动一个不存在的MovieClip并崩溃。