Actionscript 3 Actionscript 3,如何通过单击同一帧上的按钮来显示菜单?

Actionscript 3 Actionscript 3,如何通过单击同一帧上的按钮来显示菜单?,actionscript-3,Actionscript 3,所以我有一个按钮叫manpb。单击manpb时,我希望显示一个菜单。菜单是一张图片,但如果有帮助的话,我可以将其转换为对象。 我能做的最好的事情是:用菜单制作第二个框架,并在man_pb函数中插入代码: gotoAndStop(2); 我的问题是,我希望菜单出现在同一个框架上;然后菜单上会有他自己的按钮。知道在下面的函数中键入什么吗 manpb.addEventListener(MouseEvent.CLICK, man_pb); function man_pb(eve

所以我有一个按钮叫manpb。单击manpb时,我希望显示一个菜单。菜单是一张图片,但如果有帮助的话,我可以将其转换为对象。 我能做的最好的事情是:用菜单制作第二个框架,并在man_pb函数中插入代码:

    gotoAndStop(2);
我的问题是,我希望菜单出现在同一个框架上;然后菜单上会有他自己的按钮。知道在下面的函数中键入什么吗

    manpb.addEventListener(MouseEvent.CLICK, man_pb);
    function man_pb(event:MouseEvent):void{ 

    }

非常感谢你

将菜单用作对象,并将其添加到所需的MovieClip中

var menu:Menu = new Menu();//This is your Menu Symbol in your Library, you need to create one before you can use it
var manpb;//you could do the same thing for button, so you only need one symbol that has uses different labels

manpb.addEventListener(MouseEvent.CLICK, man_pb);

function man_pb(event:MouseEvent):void{
    if(contains(menu)){//checking if "menu" already exists
        removeChild(menu);//remove it from the displaylist
     }else{
        addChild(menu);//add it to the displaylist
    }
}
在Listener函数中,检查当前的MovieClip this NOT be按钮是否已经有一个子菜单。如果是,它将删除菜单,否则,它将添加菜单


别忘了导出ActionScript的菜单。

最直观的解决方案可能是将菜单放在同一帧的MovieClip中。菜单按钮也可以放置在该菜单MovieClip中

只需将菜单图片转换为MovieClip右键单击“转换为MovieClip”。确保选择MovieClip,并在“属性”面板中为其指定一个实例名称,如menuMC或任何您想要的名称

var menu:Menu = new Menu();//This is your Menu Symbol in your Library, you need to create one before you can use it
var manpb;//you could do the same thing for button, so you only need one symbol that has uses different labels

manpb.addEventListener(MouseEvent.CLICK, man_pb);

function man_pb(event:MouseEvent):void{
    if(contains(menu)){//checking if "menu" already exists
        removeChild(menu);//remove it from the displaylist
     }else{
        addChild(menu);//add it to the displaylist
    }
}
然后,有几种方法可以让菜单仅在单击按钮时显示

1-默认情况下,将MovieClip的不透明度设置为0,然后将其包括在按钮功能中:

menuMC.alpha = 1;
从而将MovieClip更改为完全不透明

2-使电影剪辑由两个帧组成,一个空帧有一个停止;操作,以及一个包含菜单图像和按钮的框架。那么按钮代码将是:

menuMC.gotoAndStop(2);

3-从库中动态加载MovieClip。了解更多信息。编辑:这也是@DodgerThud所指的方法,是更高级但更全面的方法。

我不知道不透明度,谢谢!可以派上用场!不过我还是不想用两帧。我希望一切都在同一个框架内完成,因为我有4个菜单,每个菜单有8个选项,它们以不同的方式影响我的框架。我不能做1048576帧来涵盖所有的可能性。菜单必须出现在同一帧中。。。谢谢你的回复!我很感激!当然,很高兴这有所帮助!如果您使用@DodgerThud's或my方法,那么您应该能够在其他方法中嵌套菜单选项。我在回答中提到的第二个框架实际上包含在第一个框架内。有了电影唇,你可以在时间线的内部有时间线,基本上。对!第二帧在对象内,太棒了!我想这正是我想要的,谢谢!但是如果我的菜单是一个符号,那么我可以在as3中编辑符号中的变量;在root?@user3105028中定义和初始化的变量确实仍然可以访问这些变量。AS3允许您执行以下操作:我相信这是正确的方法。不幸的是,我不明白你所说的actionscript的导出菜单是什么意思。我只知道如何在一个文件中工作。你能给我发一个关于你的意思的链接吗?@user3105028当然可以。我相信,你的菜单资源应该是你库中的一个符号,通常在flash的右下角。右键单击资产并单击“属性”,然后单击高级箭头。之后,只需单击“导出到操作脚本”复选框并确认。这将确保您可以在代码中使用此符号,并且可以创建任意次数并删除它。但是如果我的菜单是一个符号,那么我可以在as3中编辑符号中的变量;在根目录中定义和初始化的变量?