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

时间:2013-12-15 18:10:29

标签: actionscript-3

所以我有一个名为manpb的按钮。当我点击manpb时,我想要一个菜单​​出现。菜单是一张图片,但如果有帮助,我可以将其转换为对象。 我能做的最好的事情是:用菜单制作第二帧,然后在man_pb函数中插入代码:

    gotoAndStop(2);

我的问题是我希望菜单出现在同一帧上;然后菜单会有他自己的按钮。知道在下面的函数里面键入什么?

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

    }

非常感谢你!

2 个答案:

答案 0 :(得分:0)

将您的菜单用作对象,并将其添加到您想要的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(这不应该是Button)是否已经有一个子菜单。如果是,则删除菜单,否则,它将添加菜单。

不要忘记导出ActionScript菜单。

答案 1 :(得分:0)

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

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

有几种方法可以让您只在单击按钮时才显示菜单。

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

menuMC.alpha = 1;

从而将MovieClip更改为完全不透明。

2-使MovieClip由两个帧组成,一个空帧具有stop();动作,一个帧包含菜单图像和按钮。然后按钮代码为:

menuMC.gotoAndStop(2);

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