AS3 кнопки в видеоклипе - PullRequest
       22

AS3 кнопки в видеоклипе

0 голосов
/ 13 января 2011

Я полный новичок и знаю, что мне здесь не хватает чего-то очевидного.

Я спроектировал свои экраны как мувиклип, и в каждом из мувиклипов есть кнопки, которые связывают вместе экраны меню ... все работало нормально с использованием временной шкалы и фрагментов кода.

Теперь я пытаюсь сделать это в коде, у меня возникли некоторые проблемы:

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, и, поскольку я добавил кнопки в мувиклип внутри флэш-памяти, они отображаются нормально, а курсор изменится на значок щелчка пальцем: -)

Похоже, я не могу понять, как получить кнопку с именем класса: инструкция_бтн, чтобы добавить экран: инструкции, когда я нажимаю на нее.

Мёртвый, наверное, но я выдергиваю волосы!

1 Ответ

0 голосов
/ 13 января 2011

Вы используете одно и то же имя для экземпляра переменной «инструкции» и для класса «инструкции».Это, очевидно, не может работать.Придерживайтесь соглашений об именах: первая буква имени класса должна быть в верхнем регистре, а буква имени в нижнем регистре:

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