我一直在尝试制作一种快速的“游戏”,其中一个与按钮进行交互的人可以改变中心人物的外观。
例如,按下一个按钮,他们会获得另一种帽子,按下另一顶帽子,则会获得另一种衬衫或颜色。
我已经布置了图形的所有不同种类的组合,并布置了基本的按钮。
应该发生的是,每个组合上的每个按钮都将导致不同的单个帧。例如,帧1上的button_1将导致帧12,而帧2上的button_1将导致帧42。
我遇到的问题(我相信是由于堆积事件监听器而导致)是进入第2帧,然后回到第1帧后,按按钮1转到第42帧而不是第12帧,或者有时按框架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);
}
谁能帮我该怎么做,或者有什么更有效的方法可以使用?
谢谢。
最佳答案
您可以在click事件处理程序中检查当前框架,然后转到相应的框架:
function fl_ClickToGoToAndStopAtFrame_19(event:MouseEvent):void
{
if (currentFrame==1) gotoAndStop(322);
else gotoAndStop(323);
}
关于function - 在Flash中管理事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36850741/