Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не рабоатают события клавиш (http://www.flasher.ru/forum/showthread.php?t=123587)

Buble 05.04.2009 22:34

Не рабоатают события клавиш
 
Есть класс Engine - мувик, который содержит только фон, в нем
описана вся игровая логика, и считывание клавы:
Код AS3:

stage.focus = stage;
stage.addEventListener(KeyboardEvent.KEY_DOWN, getKeys);

раньше экземпляр Engine создавался в среде и все работало, а когда я начал создавать его динамически в Document Class'e:
Код AS3:

public class Root extends MovieClip
        {
                private var levelNumber:int;
                private var currentLevel:Engine;
                public function Root()
                {
                        levelNumber = 0;
                        currentLevel = new Engine(levelNumber);
                        addChild(currentLevel);
                }
                public function nextLevel()
                {
                        removeChild(currentLevel);
                        currentLevel = new Engine(++levelNumber);
                        addChild(currentLevel);
                }
        }

Компилятор пишет что stage = null, и root тоже null
Как можно еще запрограммировать клавиши?
просто addEventListener(KeyboardEvent.KEY_DOWN, getKeys) - не работает

BlooDHounD 05.04.2009 22:38

мдя ... с выражением мыслей у Вас проблемы. но я подозреваю, что Вы забыли дождаться появления сцены ( Event.ADDED_TO_STAGE ).

Мечтатель 05.04.2009 22:40

Компилятор пишет все правильно. К свойству stage можно обратиться лишь после того, как экземпляр н-ного класса будет добавлен в список отображения. В случае, если Ваш класс Engine является точкой регистрации программы он автоматически добавляется в качестве первого ребенка экземпляра класса Stage. Но, судя по тому, что пишет компилятор - Engine не является точкой регистрации программы.

Buble 05.04.2009 22:48

Event.ADDED_TO_STAGE - сработало :)


Часовой пояс GMT +4, время: 13:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.