【发布时间】:2013-11-02 00:23:53
【问题描述】:
我有三个按钮,它们应该在单击和关闭时切换。这三个都有相同的代码,但只有第一个有效。
每个按钮都会跳转到一个不同的框架,在该框架中该特定按钮被“切换”,然后如果再次单击它应该能够跳回主菜单,我将其标记为“主”。
当我单击按钮 B(和 C,但我只是以 B 为例)时,它会像预期的那样跟踪“B 被选中”,但是当我再次单击时,什么也没有发生。它不会像预期的那样在“main”帧上跟踪“B was deselected”或 gotoAndStop()。当我从按钮 B 和 C 中删除 gotoAndStop() 行时,它运行正常,在打开和关闭时跟踪“B 被选中”,然后“B 被取消选择”。
我完全不知道为什么按钮 B 和 C 不起作用,而且我已经重写了很多次代码。
任何人都可以给我任何帮助将不胜感激!
stop();
var a:int;
a=0;
var b:int;
b=0;
var c:int;
c=0;
var hitA:Boolean=false;
btnA.addEventListener(MouseEvent.CLICK, AHandler);
function AHandler(e:Object):void {
if (hitA==false) {
hitA=true;
}
if(a==0){
trace("A was selected");
gotoAndStop("Aup");
a=1
} else {
trace("A was deselected");
a=0;
gotoAndStop("main");
}
}
//////Button B
var hitB:Boolean=false;
btnB.addEventListener(MouseEvent.CLICK, BHandler);
function BHandler(e:Object):void {
if (hitB==false) {
hitB=true;
}
if(b==0){
trace("B was selected");
gotoAndStop("Bup");
b=1
} else {
trace("B was deselected");
b=0;
gotoAndStop("main");
}
}
//////Button C
var hitC:Boolean=false;
btnC.addEventListener(MouseEvent.CLICK, CHandler);
function CHandler(e:Object):void {
if (hitC==false) {
hitC=true;
}
if(c==0){
trace("C was selected");
gotoAndStop("Cup");
c=1
} else {
trace("C was deselected");
c=0;
gotoAndStop("main");
}
}
【问题讨论】:
-
我已经有一段时间没有进行时间线编码了,但是尝试将您的代码放在它自己的图层中,该图层只有一个关键帧并且跨越整个时间线。所以如果“Aup”是第1帧,“Bup”是第3帧,“Cup”是第7帧,你的代码层应该是从第1帧到第7帧。
-
@TreeTree 我将所有代码都放在名为“动作”的层的第一帧上。不过,每个标签都在不同的帧上设置了关键帧。
-
如果您的代码只存在于一个框架上,那么当您转到另一个框架时不会发生任何事情,因为那里没有代码。我怀疑这就是正在发生的事情。您描述了这些按钮仅在您第一次单击时才起作用。
-
TreeTree 是对的,如果你把你的代码转换成文档类,就不会有这个问题了。
-
@Xiler 对不起,我不太清楚你的意思。 “文档类?”
标签: javascript jquery actionscript-3 flash actionscript