【问题标题】:AS3 gotoAndStop() not working and making trace() not work alsoAS3 gotoAndStop() 不工作并使 trace() 也不工作
【发布时间】: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


【解决方案1】:

这张图片突出显示了您为项目指定文档类的位置。此类是一个动作脚本文件 (.as),与所有 .as 文件一样,它们包含代码。它与您放在时间轴上的代码相同,除了 .as 与 .fla 文件分开,但仍然可以连接到它。将代码写入 .as 文件时,您只需将其全部放在一个包中,然后放在一个类中,但除此之外,您可以复制并粘贴您的代码。如果它在文档类中,无论如何它都会运行框架你的时间线是打开的。

package{
  public class{
    // your code here
  }
}

如果这仍然令人困惑,那就去看看吧,有很多很棒的书,几乎可以满足你的任何需求。

【讨论】:

    【解决方案2】:

    你可以试试这个代码...

    btnA.addEventListener(MouseEvent.CLICK, AHandler);
    function AHandler(e:Object):void {
        if (hitA==false) {
            hitA=true; 
        }
    
    btnA.addEventListener(MouseEvent.DOUBLE_CLICK, Adouble);
    function Adouble(e:Object):void {
        gotoAndStop("main");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-08
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      相关资源
      最近更新 更多