Actionscript 3 尽管没有编译器/输出错误,Flash CS6按钮仍不工作

Actionscript 3 尽管没有编译器/输出错误,Flash CS6按钮仍不工作,actionscript-3,button,flash-cs6,Actionscript 3,Button,Flash Cs6,我正在使用FlashCS6,AS3为我的项目创建按钮。下面是我的代码: Intro_btn.addEventListener(MouseEvent.MOUSE_DOWN, Intro_func); function Intro_func(event:MouseEvent):void { gotoAndStop("Intro"); } 在“输出和编译器”面板上运行时,不会出现错误,在通过调试器运行时也不会出现错误。另外,我对其他五个按钮使用了完全相同的代码,它们工作起来没有问题。有人能告

我正在使用FlashCS6,AS3为我的项目创建按钮。下面是我的代码:

Intro_btn.addEventListener(MouseEvent.MOUSE_DOWN, Intro_func);
function Intro_func(event:MouseEvent):void {
    gotoAndStop("Intro");
}

在“输出和编译器”面板上运行时,不会出现错误,在通过调试器运行时也不会出现错误。另外,我对其他五个按钮使用了完全相同的代码,它们工作起来没有问题。有人能告诉我我的代码出了什么问题吗?

我需要知道更多关于您的代码以及您正在使用的按钮类型的信息,但是我会尝试以下步骤:

1.-从组件检查器添加按钮组件,设置其实例名称,并将相同的功能添加到单击事件:

newButton.addEventListener(MouseEvent.CLICK, Intro_func);
    function Intro_func(event:MouseEvent):void {
        trace("function executed");
        gotoAndStop("Intro");
}
2.-运行应用程序并测试是否使用此新按钮执行操作。如果这个测试通过,那么你的问题是你的按钮

在按钮上选中此选项:

  • 检查按钮的基类(确保是MovieClip或button类)

  • 检查您的按钮是否已启用/禁用

  • 检查您的按钮或其子按钮是否已启用mouseEnabled并将mouseChildren设置为 对

  • 检查按钮顶部是否没有其他对象,无论是在artboard中还是在运行时通过代码添加

  • 最后,我建议您将useHandCursor设置为true;当您移动到按钮上方时,这将取代指向手的鼠标指针箭头(这只是为了测试您的按钮是否实际与鼠标交互)


希望这能有所帮助。

很抱歉延迟,但我找到了您的解决方案,比您想象的要简单:您的帧延迟了

您的简介btn脚本位于第10帧,但是在第1帧中,您告诉它转到第9帧(“二胡”帧标签),因此设置事件侦听器的操作永远不会被调用

还要记住以下几点:

对象仅在其帧生命周期内存在,如果您有第5帧到第10帧的对象,则它将仅存在于该帧中,因此移动到前一帧或后一帧(例如第4帧和第11帧)将在内存中删除该对象及其关联动作(英语:

您将按钮放置在第10帧中,并添加了其鼠标向下侦听器。但是,如果返回到第0帧,由于按钮在此帧中不存在,它将与其侦听器一起从内存中删除,因此,如果从第0帧转到与第10帧不同的任何其他帧,您的按钮将永远不会关联其侦听器

因此,我的建议是:

1.-将函数添加到第0帧:

function Intro_func(event:MouseEvent):void {
    trace("function executed");
    gotoAndStop("Intro");
}
2.-创建一个新层。在该层中,在您的Intro_btn所在的相同位置(第10帧)添加一个关键帧,并用空帧(无关键帧)填充该层时间线的其余部分,最后在同一层中,在第10帧中添加您的listener Intro_btn.addEventListener。这样,动作可用于第10帧的每个子提示帧


希望这能解决您的问题。

可能是任何问题。您是否确实有标签为
Intro
的框架?是否明确执行了此代码(附加了事件侦听器)?你的按钮上方是否绝对没有任何东西(即使它是完全透明的)?是的,我肯定有一个标签为
Intro
的框架。我将该层移到了第二个顶部(最顶层是我的actionscript层),所以这不应该是个问题。尝试通过添加
跟踪(“某物”)来验证是否执行了
Intro_func
函数
并尝试使用
gotoAndPlay(“Intro”)。我两个都试过了。任何一个都不会发生任何变化。我将单击按钮,不会出现错误,但不会出现跟踪语句,帧也不会更改。我的按钮基类肯定是button。这是一个简单的按钮,所以当我将
mousechildren
设置为true时,我得到了编译器错误1009。呃…我不知道如何检查我的按钮是启用还是禁用,但我没有更改按钮的默认设置。我的按钮位于第二层(最高层是AS3),上面没有按钮。据我所知,没有在运行时添加代码。我还尝试了
useHandCursor
方法,每当鼠标指针悬停在按钮上时,我都会得到一个鼠标。谢谢你迄今为止的帮助!:)下面是一个Dropbox文件夹的链接,其中包含我的项目,以备不时之需:感谢您抽出时间回复!然而,遗憾的是,它没有真正起作用,也没有出现错误。我在第1帧中添加了代码,然后在actionscript层的正下方创建了一个层,将其第10帧转换为关键帧,并添加了
Intro_btn.addEventListener(MouseEvent.CLICK,Intro_func)。我做错什么了吗?