Доброго дня. Вопрос о методологии наверное.
Новичок, никак не догоню логику построения нормальных, красивых Flash-приложений.
Дело в том, что объектная модель приложения (как правило) не стыкуется с моделью отображения.
Из-за этого приходится хранить ссылки на объекты в глобальных переменных, объявлять публичными функции и переменные, которые должны быть защищёнными, создавать листенеры, логика работы которых не соотвествует логике взаимоотношений объектов и заниматься прочим непотребством, за которые в обычном программировании ставят к стенке.
Думал понимание придёт с начальным опытом.... Не, не выходит каменный цветок...
Подскажите пожалуйста - как лучше организовывать проект, если взаимоотношения объектов в сцене не соотвествует логике объектов приложения.
Пример:
Логика приложения:- Дом
-
- этаж
--
- квартира
---
- планировка
- Метка с информацией о интересуемом объекте
Логика отображения:- Дом и селектор этажей
- Этаж, содержащий квартиры
- Планировка квартиры
Проблемы:
1. Планировка квартиры должна осуществлять навигацию по этажу, хотя в теории дочерние элементы не обязаны знать о своих владельцах. Приходится хранить ссылку на владельца или пользоваться пользовательскими событиями, чтобы возбудить этаж к жизни.
2. Планировки этажей повторяются - на каждом этаже выгодно использовать один и тот же графический элемент отображения. Дуплицировать тяжёлый объект смысла нет. Храню ссылку в объекте этажа, отображаю её на экране. Это создаёт сложности с квартирами внутри этажа - при переключении приходится проводить реинициализацию всего содержимого этажа в зависимости от содержимого конфига (продано\не продано).
3. При наведении мышой на квартиру отображается метка, которая может пересекаться с квартирой - мышь на метке - происходит ROLL_OUT с квартиры, если цеплять метку ребёнком к квартире, то метка начинает наследовать свойства отображения (например прозрачность), чего не хочется.
И так далее и тому подобное. Понятно, что в частностях и всякими "извратами" это можно решить, но как быть в глобальном смылсе?!
Какая-то система, методология, идеология в конце концов...
Всё скатывается к куче кода, в котором 20% смысла и 80% учёта особенностей
национальной рыбалки модели отображения FLASH.
Помогите, не дайте пропасть.
Господа, у кого опыт не одного проекта, поделитесь идеями пожалуйста!!!
p. s.
Переделка проектов с нуля не даёт радостного ощущения, что "всё правильно".
p. p. s. примеры курил, книги прочитал, первые приложения написал, с ООП, UML и прочими матными словами знаком на практике.