我有一张带有4张照片的幻灯片,并在计时器上运行。我有一个名为play_mc的影片剪辑。在影片剪辑中是一个按钮,在关键帧1上有一个实例名称为play_btn。然后在关键帧2上有另一个按钮,其实例名称为pause_btn。在AS3层,我有这个代码:
stop();
play_btn.addEventListener(MouseEvent.CLICK, goToPause);
function goToPause(Event:MouseEvent){
gotoAndStop(2);
}
pause_btn.addEventListener(MouseEvent.CLICK, goToPlay);
function goToPlay(Event:MouseEvent){
gotoAndStop(1);
}
在as3图层的主舞台上,我有这段代码(这不是所有代码 - 所有其他代码都可以在没有play_mc影片剪辑的情况下工作)
myTimer.addEventListener(TimerEvent.TIMER, autoAdvance);
function autoAdvance(event:TimerEvent){
if(imageNumber<totalImages){
imageNumber++;
}
else(imageNumber = 1);
reload();
}
function reload(){
removeChild(myLoader);
myRequest = new URLRequest(imageNumber + ".jpg");
myLoader.load(myRequest);
addChildAt(myLoader, 1);
}
play_mc.addEventListener(MouseEvent.MOUSE_DOWN, stopTimer);
function stopTimer(event:Event){
myTimer.stop();
}
play_mc.addEventListener(MouseEvent.MOUSE_DOWN, resumeTimer);
function resumeTimer(event:Event){
myTimer.start();
}
我收到错误说:
TypeError:错误#1009:无法访问空对象引用的属性或方法。 在gallery_fla :: play_Mc_3 / frame1()
基本上,当我点击“播放”按钮时,幻灯片显示开始,文本变为“暂停”,但当我再次点击时,幻灯片显示不会暂停,文本也不会变回“播放”。
任何人都知道如何在这里帮助我吗?
答案 0 :(得分:0)
您已在按钮不存在的框架上创建了暂停按钮eventListener。 尝试放置此
pause_btn.addEventListener(MouseEvent.CLICK, goToPlay);
function goToPlay(Event:MouseEvent){
gotoAndStop(1);
}
在第二帧上有暂停按钮。
编辑:
而不是在play_mc上创建两个侦听器,只需创建一个,然后将操作基于开关,即
。var _playToggle:Boolean = true;
play_mc.addEventListener(MouseEvent.MOUSE_DOWN, switchTimer);
function switchTimer(event:Event){
if(_playToggle){
myTimer.start();
}else{
myTimer.stop()
}
_playToggle = !_playToggle;
}