如何在不同的帧上使用带有外部脚本/文档类ac3的按钮

时间:2013-06-11 14:17:57

标签: flash button frame

我正在创造一款游戏,而且大多数游戏都很顺利。然而,它通常在某个帧上有一个按钮,它应该使它进入某个帧并播放。 在我的研究中,我发现了以下解决方案

  1. 可以隐藏第1帧上的按钮并运行代码(需要知道 怎么做这个看)。
  2. 仅在框架中添加按钮的侦听器 问题(我不明白这一点,他们的意思是:内部编码 时间表而不是包内;)
  3. 来源:a stackoverflow solved question

    我还发现了这个stackoverflow问题link 2 这个链接显示了一些关于隐藏按钮的内容,但我认为它不适用于包内。但我改变了,见下文。

    基于上述链接示例的代码片段

        package 
        {
    
    import flash.display.MovieClip;
    import flash.events.Event;
    
    import flash.events.MouseEvent;
    
        public class DocumentClass extends MovieClip
    {
        public var b1:Boolean = false;
        public var b2:Boolean = false;        
    
        public function DocumentClass()
        {
            init();
    
    
        }
        private function init():void
        {
    
    
        button1.addEventListener(MouseEvent.MOUSE_DOWN, checkButton);
    
        button2.addEventListener(MouseEvent.MOUSE_DOWN, checkButton);
    
        private function checkButton(e:MouseEvent):void
        {
           if(e.target.name == button1) b1 = true;
           else b2 = true;
    
           gotoAndPlay(3);
        }
    
    例如,我可以在第3帧上的

    执行与上述链接相同的操作:

        buttonA.visible = false;
        buttonB.visible = false;   
    
        if (b1) buttonA.visible = true;
        if (b2) buttonB.visible = true;
    

    编辑:我尝试了上面的代码并且它有效,但我的问题还没有解决(见下文)。

    所以这是我的问题: 我需要有关如何更好地使用上述代码的建议/信息。 原因是;我不认为上面的代码对我想要的是正确的(见下文)。

    以上代码对于放在第1帧之外的帧上的按钮不起作用(我认为),这是一个问题。

    我需要有一些没有(可见)按钮的框架用于介绍,然后在框架5上,例如带有按钮的菜单,该按钮进入下一帧并停止[stop();]并在框架6上有一个按钮它会播放下一帧直到结束。

1 个答案:

答案 0 :(得分:0)

您可以做的是在开始时添加所有按钮(第1帧)。然后,使用变量来跟踪当前帧(currentFrame)。从这里,您可以创建一个switch语句来隐藏和显示您需要的按钮。我还会在每次更改帧时调用“hideAllButtons”函数。如下所示:

if(currentFrame!=prevFrame){

    hideAllButtons();
    prevFrame=currentFrame;

    switch(currentFrame){
    case 1:
    hideAllButtons();
    break;
    case 2:
    btn1.visible=true;
    btn2.visible=true;
    break;
    }
}

使用变量来跟踪前一帧。如果它与当前(新)帧不同,则隐藏所有按钮,然后运行switch语句,根据帧添加所需的任何按钮(通过将visible设置为true)。

hideAllButtons函数可以循环遍历按钮并将所有可见性设置为false。