在Flash中管理事件监听器?

时间:2016-04-25 20:46:14

标签: function flash button error-handling flash-cs6

我一直试图制作一款闪光游戏'一种与按钮交互的人可以改变中心人物的外观。 比如按一个按钮,他们会得到一种不同的帽子,按另一种,他们可以得到一种不同的衬衫或颜色。

我已经列出了图中所有不同种类的组合,并列出了必要的按钮。

应该发生的是每个组合上的每个按钮都会导致不同的单独框架。例如第1帧上的 button_1 将导致第12帧,而在第2帧上 button_1 em>会导致第42帧

我认为我遇到的问题是由于堆叠事件监视器,是在转到第2帧之后,然后回到第1帧 ,按按钮1 转到第42帧而不是第12帧,或者有时在上按按钮1 第2帧导致转到第12帧

我试图找到一种方法,因为按钮的事件功能会重置'在离开框架时,允许您最终的框架事件发生在按钮使用的事件上。

以下是我在第2帧上使用的代码片段:

    button_20.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_19);

    function fl_ClickToGoToAndStopAtFrame_19(event:MouseEvent):void
    {

        gotoAndStop(322);

    }

然后在第3帧,按钮的代码是:

   button_20.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_33);

    function fl_ClickToGoToAndStopAtFrame_33(event:MouseEvent):void

    {

    gotoAndStop(323);

    }

任何人都可以帮忙解决我应该做的事情,或者我能用更有效的方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以在点击事件处理程序中检查当前帧并转到相应的框架:

function fl_ClickToGoToAndStopAtFrame_19(event:MouseEvent):void
{
    if (currentFrame==1) gotoAndStop(322); 
        else gotoAndStop(323);

}