У меня есть класс ChestScene, представляющий сцену/MovieClip в файле .fla, над которым я работаю. У меня было множество проблем, которые, похоже, коренились в фундаментальном непонимании того, как правильно использовать объекты, к которым прикреплен код. Насколько я понимаю, добавление объекта на сцену автоматически создает его экземпляр, поэтому сейчас все, что я пытаюсь сделать, это создать экземпляр и добавить его на сцену ChestScene() в конструкторе моего метода Main. Я думал, что это будет так просто:
public class Main extends MovieClip {
var chest:Chest = new Chest();
public function Main() {
stage.addChild(chest);
}
Но я получаю эту ошибку:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Chest()/startScene()
at Chest()
at Main()
Итак, мой первый вопрос: почему сундук нулевой? Объект существует в моем fla. Если я добавлю его на сцену, перетащив из библиотеки, класс будет работать как задумано. addChild, кажется, работает с другими объектами, которые я использую таким же образом, поэтому я не понимаю, почему я не могу использовать его для этого объекта.
Как использовать метод Main для создания экземпляра объекта и доступа/изменения свойств указанного объекта относительно сцены? И как я могу сделать то же самое для объектов, вложенных в мой первоначальный объект?
***** Редактировать после ответа
Спасибо за ваш ответ и за то, что научили меня читать отладочное сообщение. startScreen() действительно был виновником, и проблема заключалась в следующем:
stage.addEventListener(Event.ENTER_FRAME, gameLoop)
Удаление сцены и добавление слушателя к объекту исправили эту ошибку, так что слава! Но я все еще в замешательстве; почему попытка добавить слушателя на сцену вызывает нулевую ошибку? Я не понимаю, почему этап будет нулевым в этот момент. Кроме того, удаление "оленя". из addEventListener привел к тому, что размер кадра, содержащего сцену, был намного меньше, что обрезало большую часть моего изображения. Почему прослушиватель событий влияет на ширину и высоту сцены? Вот почему я также задавал вопросы о том, как правильно расположить элементы относительно ширины и высоты сцены, потому что я знаю, что это как-то связано с ошибками.