Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Структура классов для сайта (http://www.flasher.ru/forum/showthread.php?t=125084)

AlexDesinger 16.05.2009 02:37

Структура классов для сайта
 
Здравствуйте, все, не так давно я приобрел книгу "ActionScript 3.0 для Flash (Колин Мук)" и приступил к более детальному изучению языка as 3.0 поскольку логика as2 не работает в as3. Знаю, что сейчас многие из тех, кто помогал мне ранее, отвечая на мои вопросы, вздохнули с облегчением и сказали про себя:"Наконец-то...", но чем дальше я углубляюсь в as3 тем больше вопросов накапливается.
В частности в данный момент меня интересует вот что:
У Колина Мука в самом начале дается такое определение классу:"..Иначе говоря классы-это чертежи по которым создаются объекты..."
ок, значит я должен сделать так:
Создать главный класс, в котором я буду создавать экземпляры созданных мною классов объектов.
Ок, но тогда первый вопрос - создав экземпляр класса - как мне его себе представлять? Как сложный объект, как Мувиклип(если наследуется от мувиклипа, как часть кода пакета(если относятся к одному пакету), вобщем как?)
Можно ли экземпляр класса добавлять как child в другие мувиклипы?

Понятно что если мне нужно создать, например hint, то нужно описать его в классе и создать экземпляр, а затем можно им управлять....Но вот если у меня есть очень сложный объект, например галерея картинок, там происходит много событий много объектов создается и удаляется, правильно ли управлять таким сложным объектом из главного класса, например подписываясь на все мышиные события или же все-таки нужно управление доверить самой галереи - представляя ее автономным модулем, работающим в данный момент? Если да, то что делать если из галереи я присваиваю stage события мыши? Нет, я знаю что это возможно - у меня все работает, мне интересно правильно ли я делаю, что в момент когда загружена галерея - она временно рассылает слушателей, создает объекты, удаляет их и вообще ведет себя в этот момент как главный класс?

IDimitry 16.05.2009 04:51

Оф кос. Вложенность может быть любой и при правильной архитектуре любой экземпляр должен знать только родителя и потомков, о "дедушке" он даже не должен подозревать. Хотя и возможны общедоступные классы (свойства, работа с сетью и т.д.) - скорее, дань удобству использования, так как идеологически не вполне правильное применение.
Ну, и хотя это звучит уже банально в этом разделе, но примером наиболее частого построения правильной архитектуры выступает шаблон проектирования mvc. Он также позволяет осуществлять иерархические связи.

AlexDesinger 16.05.2009 13:22

Угу, в сети я посмотрел несколько статей на тему - подход mvc...
Получается, что правильнее делать так:
Я создаю главный класс документа, который может быть контроллером всех "видов" и "моделей", в нем я размещаю глобальные настройки сцены, задаю слушателей сцены, импортирую туда объекты вида(классы), и.т. а классам поручаю только выстроить объект по черетежу...так?
Затем в главном классе я располагаю элементы как нужно(в пространстве и запихивая куда нужно как чилды), начинаю прописывать слушателей мыши и клавиатуры для каждого объекта внутри каждого класса и начинаю управлять ими из главного класса документа так?
Но тогда мой главный класс разрастеться и станет очень большим, ведь сейчас специфическое поведение элемента класса определено в классе, хоть и использует глобальные данные как stage.
Единый центр управления это конечно хорошо, но ведь это тоже не удобно, а что если у меня с десяток приложений(web страниц)? То мне нужно будет в главном классе прописать все действия которые пользователь возможно совершит, если вдруг нажмет на определенный элемент меню?
Тогда вопрос следующий - что выбрать:
-Описать все объекты в отдельных классах, а в гланом управлять всеми ихними свойствами и действиями?
-Описать все объекты в отдельных классах, доверив классам управлять специфическими свойствами и действиями объектов внутри данного класса, в том числе и разрешить обращаться к satge?
-Создать несколько swf файлов - символизирующие web страницы или модули сайта, подгружать их с их док классами и допклассами как независимые элементы и выгружать когда это необходимо?
Вобщем подскажите, плиз ...

Mur4ik 16.05.2009 18:01

Если вы больше ориентируетесь на сайты, присмотритесь к такой вот штуке как GAIA. Там уже за Вас продумана основная структура классов (вроде как исходя из лучших практик). И многое уже сделано за Вас изначально, прелоадеры, диплинкинг, загрузка и доступ к всевозможным даным (XML, звук, изображения, видео и т.д). Очень ускоряет разработку сайтов, при этом особо не заставляя Вас работать тем или иным образом, вообщем такой себе удобненький фреймворк для сайтостроения, сильно ускоряющий разработку сайтов.

AlexDesinger 18.05.2009 14:11

Mur4ik, спасибо, но хочется все-таки самому немного разобраться.
Ок я спрошу тогда так:
Я сделал следующее - в гланый класс я вынес все настройки стейджа и иморты, и добавил реакцию на ресайз(т.е. по сути главный класс-это описание стэйджа), в главном классе я импортирую другие классы - элементы интерфейса и распологаю их тоже в гланом классе, вопрос собственно в следующем - правильно ли я делаю, что отношусь к классам как к отдельным объектам, расположенным на сцене(практически все они наследуются от MovieClip, т.е. в моем представлении это оъекты, которые собственно и являются "усложненными мувиклипами"), между которыми должно происходить взаимодействие, в том числе и обращение друг к другу и к стейджу?


Часовой пояс GMT +4, время: 13:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.