![]() |
Структура классов для сайта
Здравствуйте, все, не так давно я приобрел книгу "ActionScript 3.0 для Flash (Колин Мук)" и приступил к более детальному изучению языка as 3.0 поскольку логика as2 не работает в as3. Знаю, что сейчас многие из тех, кто помогал мне ранее, отвечая на мои вопросы, вздохнули с облегчением и сказали про себя:"Наконец-то...", но чем дальше я углубляюсь в as3 тем больше вопросов накапливается.
В частности в данный момент меня интересует вот что: У Колина Мука в самом начале дается такое определение классу:"..Иначе говоря классы-это чертежи по которым создаются объекты..." ок, значит я должен сделать так: Создать главный класс, в котором я буду создавать экземпляры созданных мною классов объектов. Ок, но тогда первый вопрос - создав экземпляр класса - как мне его себе представлять? Как сложный объект, как Мувиклип(если наследуется от мувиклипа, как часть кода пакета(если относятся к одному пакету), вобщем как?) Можно ли экземпляр класса добавлять как child в другие мувиклипы? Понятно что если мне нужно создать, например hint, то нужно описать его в классе и создать экземпляр, а затем можно им управлять....Но вот если у меня есть очень сложный объект, например галерея картинок, там происходит много событий много объектов создается и удаляется, правильно ли управлять таким сложным объектом из главного класса, например подписываясь на все мышиные события или же все-таки нужно управление доверить самой галереи - представляя ее автономным модулем, работающим в данный момент? Если да, то что делать если из галереи я присваиваю stage события мыши? Нет, я знаю что это возможно - у меня все работает, мне интересно правильно ли я делаю, что в момент когда загружена галерея - она временно рассылает слушателей, создает объекты, удаляет их и вообще ведет себя в этот момент как главный класс? |
Оф кос. Вложенность может быть любой и при правильной архитектуре любой экземпляр должен знать только родителя и потомков, о "дедушке" он даже не должен подозревать. Хотя и возможны общедоступные классы (свойства, работа с сетью и т.д.) - скорее, дань удобству использования, так как идеологически не вполне правильное применение.
Ну, и хотя это звучит уже банально в этом разделе, но примером наиболее частого построения правильной архитектуры выступает шаблон проектирования mvc. Он также позволяет осуществлять иерархические связи. |
Угу, в сети я посмотрел несколько статей на тему - подход mvc...
Получается, что правильнее делать так: Я создаю главный класс документа, который может быть контроллером всех "видов" и "моделей", в нем я размещаю глобальные настройки сцены, задаю слушателей сцены, импортирую туда объекты вида(классы), и.т. а классам поручаю только выстроить объект по черетежу...так? Затем в главном классе я располагаю элементы как нужно(в пространстве и запихивая куда нужно как чилды), начинаю прописывать слушателей мыши и клавиатуры для каждого объекта внутри каждого класса и начинаю управлять ими из главного класса документа так? Но тогда мой главный класс разрастеться и станет очень большим, ведь сейчас специфическое поведение элемента класса определено в классе, хоть и использует глобальные данные как stage. Единый центр управления это конечно хорошо, но ведь это тоже не удобно, а что если у меня с десяток приложений(web страниц)? То мне нужно будет в главном классе прописать все действия которые пользователь возможно совершит, если вдруг нажмет на определенный элемент меню? Тогда вопрос следующий - что выбрать: -Описать все объекты в отдельных классах, а в гланом управлять всеми ихними свойствами и действиями? -Описать все объекты в отдельных классах, доверив классам управлять специфическими свойствами и действиями объектов внутри данного класса, в том числе и разрешить обращаться к satge? -Создать несколько swf файлов - символизирующие web страницы или модули сайта, подгружать их с их док классами и допклассами как независимые элементы и выгружать когда это необходимо? Вобщем подскажите, плиз ... |
Если вы больше ориентируетесь на сайты, присмотритесь к такой вот штуке как GAIA. Там уже за Вас продумана основная структура классов (вроде как исходя из лучших практик). И многое уже сделано за Вас изначально, прелоадеры, диплинкинг, загрузка и доступ к всевозможным даным (XML, звук, изображения, видео и т.д). Очень ускоряет разработку сайтов, при этом особо не заставляя Вас работать тем или иным образом, вообщем такой себе удобненький фреймворк для сайтостроения, сильно ускоряющий разработку сайтов.
|
Mur4ik, спасибо, но хочется все-таки самому немного разобраться.
Ок я спрошу тогда так: Я сделал следующее - в гланый класс я вынес все настройки стейджа и иморты, и добавил реакцию на ресайз(т.е. по сути главный класс-это описание стэйджа), в главном классе я импортирую другие классы - элементы интерфейса и распологаю их тоже в гланом классе, вопрос собственно в следующем - правильно ли я делаю, что отношусь к классам как к отдельным объектам, расположенным на сцене(практически все они наследуются от MovieClip, т.е. в моем представлении это оъекты, которые собственно и являются "усложненными мувиклипами"), между которыми должно происходить взаимодействие, в том числе и обращение друг к другу и к стейджу? |
| Часовой пояс GMT +4, время: 13:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.