我正在构建一个支持英语和日语的SWF面板,以及一个在它们之间切换的按钮。英语在第1帧,第2帧是第2帧。第一帧是相关的AS3:
btnLangToggle.addEventListener(MouseEvent.CLICK, onLangToggle);
...
this.stop();
...
function onLangToggle(e:MouseEvent):void {
if (MovieClip(root).currentFrame == 1) {
MovieClip(root).gotoAndStop(2);
} else {
MovieClip(root).gotoAndStop(1);
}
trace(MovieClip(root).currentFrameLabel);
}
我单击按钮,事件处理函数运行正常,一次。如果我再次点击它,没有任何反应。为什么呢?
编辑:这是我的两个框架和时间轴的样子。
答案 0 :(得分:0)
如果我再次点击它,没有任何反应。为什么呢?
因为它是一个MovieClip,它们是为动画设计的,而不是为应用程序状态设计的。第一帧中的场景上的对象在第二关键帧中不可访问。
我假设在您的情况下,您可以使用不同的MovieClip(不同语言)实例切换语言。在第二帧中再次应用日语版语言按钮的事件监听器:
btnLangToggle.addEventListener(MouseEvent.CLICK, onLangToggle);
另外,请阅读Document Class,这是非常简单的创建应用程序,只有2个状态,就像你有(2帧......)
答案 1 :(得分:0)
我假设您使用按钮的关键帧,对吗? 您必须确保两个框架上的按钮相同。这意味着您不能使用关键帧 - 而是使用单个关键帧和两个普通帧的按钮单独的图层。这样你的代码就可以正常工作了。