Вы можете создать экземпляр файла класса Snake во вступлении, используя код, подобный следующему, на кадре 100:
var game:Snake = new Snake();
addChild(game);
, предполагая, что ваш класс документа называется SnakeGame
.Возможно, вам придется внести несколько изменений в SnakeGame
, чтобы это сработало.При использовании этого метода свойства stage
и root
для SnakeGame
будут нулевыми в конструкторе.Это поведение отличается от того, каким был класс документа (или размещен непосредственно на сцене) - stage
и root
уже инициализированы.Поэтому, если вы выполняете какие-либо действия для root
или stage
в конструкторе, вы должны изменить это, иначе вы получите ошибку.Чтобы это исправить, прослушайте событие ADDED_TO_STAGE
в Snake
:
public function Snake() {
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
public function onAddedToStage(event:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
// stage+root are now valid, put your init code here
}
В качестве альтернативы, вы можете связать класс Snake
с пустым символом MovieClip и поместить его прямо на сцену в кадре 100.Сначала создайте пустой мувиклип, перейдя в Window-> Library и нажав +.В диалоговом окне «Создать новый символ» установите флажок «Экспорт для ActionScript» и введите Snake
в поле «Класс» в разделе «Связывание».Теперь вы можете перетащить этот MovieClip прямо на сцену в кадре 100, и, надеюсь, он будет работать без изменений в коде.