尝试移动到下一帧时AS3错误#1009

时间:2013-05-06 14:59:19

标签: actionscript-3 flash cs3

在我的程序中,我有一个小箭头旋转,这是使用

的代码
import flash.events.Event;

var spinSpeed:Number = 2;

function onEnterFrame(event:Event):void{

myMovieClip.rotation += spinSpeed;

}

addEventListener(Event.ENTER_FRAME, onEnterFrame); 



btnnext14.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_11);

function fl_ClickToGoToAndStopAtFrame_11(event:MouseEvent):void
{
    gotoAndStop(39);
}

它工作正常并且箭头旋转,但当我尝试转到下一张幻灯片时,我收到错误#1009

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at pp2_fla::MainTimeline/onEnterFrame()[pp2_fla.MainTimeline::frame38:9]

任何人都知道什么是错的?

1 个答案:

答案 0 :(得分:1)

这可能是您的问题:

在您发布的代码运行的任何帧上,您都会添加一个enter_frame侦听器。 您可能不知道,即使您更改为第39帧,您创建的此enter_frame侦听器也将继续运行。

最有可能在第39帧,您的myMovieClip对象不再存在,因此当您的onEnterFrame从第39帧开始运行时,它会出错。

要解决此问题,请在继续执行第39帧之前删除enter_frame侦听器:

function fl_ClickToGoToAndStopAtFrame_11(event:MouseEvent):void
{
    removeEventListener(Event.ENTER_FRAME, onEnterFrame); 
    gotoAndStop(39);
}