Здравствуйте уважаемые флэш разработчики.
Ради опыта взялся программировать не сложную игру подобного полана:
http://content.stungames.com/games/o...ransporter.swf (тюнинг машины). Т.е. в наличии интерфейс с кнопками, нажимая на них мы меняем деталь машины (тюнингуем).
Хотел бы обсудить с опытными людьми, как лучше организовать архитектуру игры.
Итак.
Машина делиться на корпус ( 5 видов покрасок), колеса (с 5-ю видами дисков), сполеры ( 5 видов), и др.
Организация клипов: к примеру, за корпус у меня отвечает один клип с названием “Corpus” с пятью кадрами (в каждом - один вид покраски). Очень удобно перебирая кадры менять покраску. Таким же образом у меня организованы остальные части машины.
Далее у меня существует клип Car, который сформирован из клипов (экземпляров) частей машины, иными словами, там собрана машина на основе клипов (“Corpus” и пр.) и т.к., все поименовано, чтобы к ним можно было обращаться, напр.: Car.Corpus. gotoAndStop(3); - выбираем третьею покраску корпуса
Далее имеется клип Interface, в котором находится графический интерфейс с кнопками – треугольниками, как в игре примере (нажимая на одну из кнопок, она перебирает к примеру, цвета корпуса).
Итак, в кадре у меня расположен экземпляр клипа Interface и экземпляр клипа Car.
В main классе (тот что цепляется в свойствах документа) у меня идет инициализация объектов, а также главный код игры, т.е. переключение между главными кадрами (загрузка- кадр, главное меню -2 кадр, выше описанный тюнинг машины -3 кадр, поездка на машине – 4 кадр, окно результатов – 5 кадр). Тут же прописываю код взаимодействия клипа Interface и Car.
Но вот тут возникала проблема, если экземпляр клипа Interface расположен в третьем кадре, то в функции main() класса main, я не могу обратиться к свойству например Interface_1.x = 10, выдает: “Не удается вызвать свойство или метод со ссылкой на объект "null".”
Если же я экземпляр клипа Interface располагаю в первом кадре, то ошибки нет, обращение к свойству X происходит успешно. Что мне надо сделать, чтобы я мог обратиться к Interface во всех кадрах? Да, и очень важно, экземпляр клипа Interface я не создаю в коде класса main (var Interface_1:Interface = new Interface), а в flash cs4 я перетаскиваю клип в рабочую область кадра 3 и именую в свойствах, как Interface_1.
Т.е. хотел бы услышать мнение об общей организации архитектуры игры и соответственно, как решить вышеописанную проблему?