Actionscript 3 AS3-按钮在重新进入帧时不起作用
我在第一帧中设置了三个按钮,用来切换帧。当程序第一次运行时,没有错误,我可以单击任何按钮,并在我想要的地方结束。但是,当返回到第一帧时,按钮不再工作。不过,舞台上的听众仍然在工作。我添加了“Clicked”输出,以检查函数是否被调用,而不是被调用。我知道我禁用了代码中的按钮,但只有在单击该按钮并完成任务之后。我应该提到的是,我没有时间线上的代码,而是在一个单独的文档中。这是我的密码:Actionscript 3 AS3-按钮在重新进入帧时不起作用,actionscript-3,function,button,mouseevent,listener,Actionscript 3,Function,Button,Mouseevent,Listener,我在第一帧中设置了三个按钮,用来切换帧。当程序第一次运行时,没有错误,我可以单击任何按钮,并在我想要的地方结束。但是,当返回到第一帧时,按钮不再工作。不过,舞台上的听众仍然在工作。我添加了“Clicked”输出,以检查函数是否被调用,而不是被调用。我知道我禁用了代码中的按钮,但只有在单击该按钮并完成任务之后。我应该提到的是,我没有时间线上的代码,而是在一个单独的文档中。这是我的密码: package{ import flash.display.MovieClip; import flash.ev
package{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.SimpleButton;
public class DocumentClass extends MovieClip
{
public var matteOppgave:Boolean = false;
public var engelskOppgave:Boolean = false;
public var flaggOppgave:Boolean = false;
public function DocumentClass()
{
stop();
btnBok.addEventListener(MouseEvent.CLICK, matte);
btnFlagg.addEventListener(MouseEvent.CLICK, flagg);
btnPc.addEventListener(MouseEvent.CLICK, engelsk);
stage.addEventListener(Event.ENTER_FRAME, sjekk);
btnBok.enabled = true;
btnPc.enabled = true;
btnFlagg.enabled = true;
function matte(evt:MouseEvent)
{
gotoAndStop(2);
frame2();
trace("Clicked");
}
function engelsk(evt:MouseEvent)
{
gotoAndStop(3);
frame3();
trace("Clicked");
}
function flagg(evt:MouseEvent)
{
gotoAndStop(4);
frame4();
trace("Clicked");
}
function sjekk(evt:Event)
{
if(matteOppgave == true && engelskOppgave == true && flaggOppgave == true)
{
gotoAndStop(5);
}
if(matteOppgave == true)
{
btnBok.alpha = 0.5;
btnBok.enabled = false;
låsEin.alpha = 0;
}
if(engelskOppgave == true)
{
btnPc.alpha = 0.5;
btnPc.enabled = false;
låsTo.alpha = 0;
}
if(flaggOppgave == true)
{
btnFlagg.alpha = 0.5;
btnFlagg.enabled = false;
låsTre.alpha = 0;
}
}
}
我从另一个论坛上发布的解决方案中得到了它。我将我拥有的五个帧制作成movieclips,并使用addChild()和removeChild()来回更改 如何回到第1帧?当程序运行完函数(第2帧、第3帧和第4帧)中的所有代码后,我假设它在第一个函数(DocumentClass)中继续运行。。。舞台的监听器在返回到frame1之后工作,所以我猜它是这样工作的。如果你的意思是在时间轴上,那么我在函数末尾有一个gotoAndStop(1)。“…在函数末尾。”这是什么意思?单击每个按钮后,您会自动从第2、3和4帧返回到第1帧吗?此外,如何设置为“真”您的“MatteOppGiven”、“EngelskoppGiven”和“FlaggoppGiven”。如果您从一开始就提供了所有这些信息,您现在可能已经有了答案!单击btnBok时,播放frame2,用户解决任务,MatteOppGive设置为true,显示时间轴上的第一帧(使用gotoAndStop(1),frame2功能完成。frame2功能完成后,代码在DocumentClass功能中继续。