Как получить доступ к этапу от класса AS3 в Adobe Flash

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

Когда я выполняю код в maintimeline, нет никакой проблемы. Но когда я пытаюсь получить доступ к нему от другого класса (с 'Экспортом для ActionScript', на рассматриваемом фрагменте ролика) я получаю ошибку, он не может обратиться к этапу.

this.stage.addEventListener (KeyboardEvent. KEY_DOWN, dostuff);

5
задан Graphithy 21 April 2010 в 20:36
поделиться

2 ответа

Класс в AS3 не отображается на сцене, пока вы не поместите его туда. В результате во время компиляции this.stage будет иметь значение NULL. Вы можете обойти эту проблему, используя событие ADDED_TO_STAGE, чтобы отложить привязку ваших слушателей до подходящего времени.

public function MyClass(){
    this.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
}

private function addedToStageHandler(e:Event):void{
    this.stage.addEventListener(KeyboardEvent.KEY_DOWN, dostuff);
}
9
ответ дан 14 December 2019 в 01:04
поделиться

"1120: Доступ к неопределенному свойству Keyboard. {{1} } Вот ваш ответ. Вы не определили свойства клавиатуры. Это означает, что вы не импортировали в пакет.

должно выглядеть примерно так:

 import flash.display.*;
 import flash.events.*;
 import flash.ui.*; 

Совет: более подробно изучите импорт . попробуйте использовать flash Builder, он намного лучше для начинающих, и классы автоматического импорта, поэтому вам не нужно все запоминать.

0
ответ дан 14 December 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: