动画片段中的AS3按钮

时间:2011-01-12 22:01:43

标签: flash actionscript-3 button movieclip

我是一个闪光的完整菜鸟,知道我只是遗漏了一些明显的东西。

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

现在,我正在尝试在代码中执行此操作,我遇到了一些问题:

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);
        }
    }
} 

我可以将影片剪辑Main显示出来,因为我已经在flash中的movieclip中添加了按钮,它们显示正常,光标变为手指点击图标: - )

我似乎无法解决的问题是如何获得带有类名的按钮:instructions_btn来添加屏幕:点击它时的说明。

可能很容易死,但是我把头发拉了出来!

1 个答案:

答案 0 :(得分:0)

您对变量实例“说明”和“指令”类使用相同的名称。显然,这不起作用。坚持命名约定:类名的第一个字母应为大写,实例名称为小写:

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

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

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

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

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