Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> основы построения flash-сайтов на AS2, что порекомендуете почитать? 
:(
    Опции темы
AzuManga
Дата 4.6.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 12.5.2005

Репутация: нет
Всего: нет



Здравствуйте, коллеги 8)

Кто-нибудь может порекомендовать как удобнее делать flash-сайты на AS2. Я имею ввиду принцип построения сайта и переключения между страницами.

Насколько я знаю - некоторые (даже 2advanced) располагают по таймлайну кадры со страничками и переключаюцца с помощью gotoAndPlay.

В тоже время другие говорят что в файле fla должна быть 1 строка кода с вызовом точки входа в скомпиленные классы (и мне, как сишному программисту, такая организация вполне удобна) Но при этом приходится самому кодировать переходы между страничками.

Что бы вы посоветовали ? Может есть и другие методы организации сайтов на AS?

Спасибо за внимание 8) 
--------------------
 Точка с запятой; 
PM MAIL   Вверх
Maksys
Дата 4.6.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: 3
Всего: 17



1-е нужно для анимации,
2-е нужно для кодировки этой анимации... но можно и других кадрах писать код по старинке, но скоро, и это уже не надо будет. 


--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
szz
Дата 5.6.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 6
Всего: 33



Я лично создаю обычно 2 пустых мувиклипа на основном мувике (ну, в котором шапка, навигация и тд.), пишу потом функцию, которая принимает название мувика(страницы) для загрузки, грузит его попеременно в каждый из пустых мувиклипов.
   Каждая страница имеет анимацию появления(фреймы, напирмер 1 по 50) и исчезновения (например 100-150). Появление само происходит - мувик имеет стоп после него. Исчезновение запускается моей волшебной функцией каждый раз, когда  ее просят загрузить другую страницу.
   Зачем два пустых мувиклипа - так это чтоб одновременно появление одного и исчезновение другого происходило- так красивее smile
  Ну, разумеется, если одна страница полностью исчезла, а новая еще не загрузилась -  функция показывает красивый please wait  smile 
  
   Что касается исчезновения - можно и посложнее сделать, если правила исчезновения у каждой страницы свои - то тогда каждая страница должна иметь в себе функцию fadeOut - и она будет запускаться моей волшебной функцией вместо простого gotoAndPlay(100).
  Вообще-то я это совмещаю:
Код
if(typeof mc.fadeOut == 'function')
   mc.fadeOut();
else
  mc.gotoAndPlay(100);// или какой там у вас фрейм


В общем, такая сзема у меня довольно гибко работает - не жалуюсь   smile  


--------------------
PM   Вверх
AzuManga
Дата 5.6.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 12.5.2005

Репутация: нет
Всего: нет



szz - я когда на ASP.NET одностраничные порталы кодил - у меня такая же схема была 8)) Самому пришлось разарабатывать, хотя в итоге оказалось, что она уже описана в стартеркитах 8)

Я вот пока не очень понимаю, зачем тебе делать новый фрейм для другой страницы, если у тебя есть функция фейда мувика....

У меня на данный момент разработана пока такая схема (я просто не знаю, оптимальна ли она):

Есть один кадр, в котором создается объект класса допустим Manager. В нем есть массив, в который по мере надобности засовываюцца объекты классов, унаследованных от мувика. Иногда разным страничкам нужны разные классы, хотя иногда и одним можно обойтись. 

Каждый объект-страница (или ее кусок) сам палит процесс своего появления/исчезновения и сообщает об этом манагеру.

Меня, кстати, интересует, что будет, если удалять из памяти объект-страницу, которая пока не нужна. Будут ли заново загружаться все XML-ки и картинки при повторном создании объекта, или они останутся в кэше? 
--------------------
 Точка с запятой; 
PM MAIL   Вверх
artfabrique
  Дата 13.5.2007, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Дизайн
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 5.2.2006
Где: СПб

Репутация: 1
Всего: 2



картинки остануться в кэше.
а XML как сделаешь так и будет.
Есть у меня собственный класс для парсинга XML деревьев определенной структуры.
Я как сделал - я определил оптималную структуру XML ответа от сервера (шаблон), которая подходит почти для любого рода "раздела". Потом сделал парсер для XML структур этого типа. Этот парсер выдергивает нужные мне данные и создает деревья уже не XML а обьектов внутри моего главного обьекта-датахолдера (например globalData какойнить)
при создании этих деревьев парсер смотрит - если ему велено сейчас из кеша брать то он берет просто и globalData (если нет такого кеша то грузит и парсит XML заного и пишет его), а если не нужен нам кеш то смотрит есть ли в globalData по данному адресу обьекты с данными и делитит их а потом заного создает, грузит и пишет.

тоесть данные существуют отдельно от "разделов и мувиков" !!!

А что на счет переключения между разделами:
то для каждого раздела у меня мувик есть который на "Экспорт фор акшнскрипт" стоит.
Внутри каждого мувика есть функция init() которая определяет все главные переменные мувика(текущего раздела), подгружает нужную ей инфу из моего глобального обьекта данных (globalData) и копирует себе в локаль копию дерева данных только для себя тоесть чтобы не вести прямую работу с этим обьектом. 
Например раздел News:
в globalData.news находятся вся инфа для новостей.
тоесть, например, в  globalData.news.highlight - главная новость, в globalData.news.items - обьекты для каждой отдельной новости. По этим деревьям я гуляю for.. in конструкцией. Чтобы динамически имена обьектов составлять делаю так: globalData.news.items["i_"+айди_новости] (это я так - мало ли кто не в курсе и eval пользуется =))))))))

Дак вот в функции init внутри приаттаченого раздела я копирую нужную ветку из глобал дата в локаль этого мувика:
localDataObj =  globalData.news;
потом я определяю 2 булиновские переменные: haveIntro и haveOutro. Они собственно и будут определять - либо мы фэйдим раздел с помощью нашего ранее написанного метода либо играют интро или аутро по собственном сценариям.

Кстати на счет фэйдинья. Есть замечательный класс Tween пользоваться проще пареной репы а время экономит дофига. (Это опять же мало ли кто не в курсе) Этот класс для того чтобы плавно или как изменять значения любого параметра мувиклипа за определенное время в секундах или кадрах. Со всеми замедлениями, убыстрениями и т.д.

есть в руте функция switchContent которая управляет собственно переключением разделов и обеспечением из контентом.

есть 2 глобальные переменные: old_content и current_content в котрых записаны референсы на присутствующие на экране разделы(предыдущий и текущий соответственно)

switchContent собственно меняетместами значения old_content и current_content и в current_content записывает новое значение.
  • потом либо фэйдит либо играет аутро мувиклипа по адресу old_content
  • потом вызывает функцию из этого мувика, которая тормозит все интервалы и твины из этого мувика(для этого все интервалы и твины тоже нада хрнить локально в массиве или обьекте чтобы по ним всем разом можно было пробегаться и выключать). У меня это функция называется killMe();
  • потом просто ремувим его самого(removeMovieClip)
после этого у нас НЕ остается хвостов от мувика в памяти (а незавершенные интервалы и твины, которые потеряли бы в результате свои идентификаторы теперь не будут дико вешать нам мувик, потому что все мы их перед удалением обьекта-холдера остановили). Я кстате не понимаю что за тупизм - после удпления обьекта холдера его дети-обьекты тоже под нож идут а интервалы и твины и ещё кое что нет. Могли бы уж сделать чтоб они тоже резались на автомате.

вот.

- потом атачим новый раздел. после того как приатаченый мувик транстирует событие onInit() вызываем внутри него функцию init() и начинаем либо фэйдить его либо играть интро. И опять же мало ли кто не знает =)) чтобы транслировать событие достаточно сделать путой вызов, например, несуществующей функции. Тоесть в первом кадре мувика раздела в конце всего кода просто пишем onInit();
а в фунции которая атацит вешаем на это событие функцию безымянную, например:

Код

old_content = current_content;
/*
 
тут фэйдим старый раздел

*/
//теперь грузим новый
current_content = _root.attachMovie(__new_content_name,"c_"+__new_content_name,_root.getNextHighestDepth());
//вешаем событие
//Это для того, потому что когда токо присоединили мувик мы не сможем получит референс к его внутренним оьектам.
//Поэтому как токо сработает наше событие то значи наш мувик теперь доступен целиком.
current_content.onInit = function() {
 current_content.init();
}


вот и все.. как то так smile 
--------------------
Я спасу мир! © ЙУХ 0000г.
PM MAIL WWW ICQ   Вверх
AlDev
Дата 19.5.2007, 04:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



AzuManga
#1: Осилить ООП и научиться нормально планировать архитектуру
#2: Посмотреть как сделаны другие сайты
PM MAIL WWW ICQ YIM MSN   Вверх
xover
Дата 4.6.2020, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.6.2020

Репутация: нет
Всего: нет



answer

user posted image
Цитата




Это сообщение отредактировал(а) xover - 4.6.2020, 23:44
PM MAIL Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.1324 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.