2011-01-12 69 views
0

我是一个完整的noob闪光灯,并知道我只是想在这里明显的东西。电影剪辑中的AS3按钮

我将我的屏幕设计为动画片段,并在每个影片剪辑中都有按钮,它们将菜单屏幕链接在一起..使用时间线和代码片段,一切正常。

现在,我试图做到这一点的代码,我有一些问题:

package 
{ 
    import flash.display.MovieClip; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 

    public class Main extends MovieClip { 

     public function Main() { 
      // define variable main as the movieclip main 
      var main = new Main_menu(); 
      var instructions = new instructions(); 
      //add the movieclip to the stage 
      addChild(main); 
      // Tell the button to run function on_play..... 
      Instructions_btn.addEventListener(MouseEvent.CLICK, on_play_button_clicked); 
     } 

     // what the button does 
     public function on_play_button_clicked(event:MouseEvent) { 
      addChild(instructions); 
     } 
    } 
} 

我能得到影片剪辑主显示,自香港专业教育学院添加的按钮在闪光灯中的影片剪辑他们显示正常,光标变为手指点击图标:-)

我似乎无法解决的是如何获得类名按钮:instructions_btn添加屏幕:说明,当我点击它。

死容易,但我拉我的头发!

+0

InstructionsBtn从哪里来? – Ben 2011-01-12 22:29:44

+0

它的按钮的名称 – paul 2011-01-12 22:38:05

回答

0

您正在为变量实例“instructions”和类“instructions”使用相同的名称。显然,这是行不通的。坚持命名约定:一类名字的第一个字母要大写,即一个实例名称的小写:

var instructions:Instructions = new Instructions(); 
addChild (instructions); 

此外,您声明说明作为构造的主要内部的局部变量,但尝试将其添加到事件处理程序的阶段 - 当它不再可用时。如果您希望变量存在于方法范围之外,请将其声明为成员:

public class Main extends MovieClip { 
    private var instructions:Instructions; 

    public function Main() { 
     instructions = new Instructions(); 
     // ... 
    } 

    private function onPlayButtonClicked (ev:Event) : void { 
     addChild (instructions); 
    } 
}