flash as3 gallery的播放/暂停按钮

时间:2014-02-03 23:43:51

标签: actionscript-3 flash button

我有一张带有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()

基本上,当我点击“播放”按钮时,幻灯片显示开始,文本变为“暂停”,但当我再次点击时,幻灯片显示不会暂停,文本也不会变回“播放”。

任何人都知道如何在这里帮助我吗?

1 个答案:

答案 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;
}