Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.09.2009, 16:01
mj_nooker вне форума Посмотреть профиль Отправить личное сообщение для mj_nooker Найти все сообщения от mj_nooker
  № 1  
Ответить с цитированием
mj_nooker

Регистрация: Aug 2009
Сообщений: 99
Tools Анимация "последовательной" загрузки мувиков

Интересно, кто как анимирует последовательное "появление" мувиков на сцене? Я имею в виду, кликаете на менюшке, сначала появляется, например, объект фон, потом по очереди появляются остальные объекты-участники.
setInterval? или на таймлайне? или и так и так? и что "выгодней" использовать для экономии ресурсов системы ? (= экономить копейки?) Плз, поделитесь соображениями по этому поводу?

к примеру, на одном из сайтов крео-эталонов, я видел, как сначала появляется разрез дома, потом мувики интерьера внутри, далее - гаджеты, и, наконец, секретарь за столом )))

Старый 30.09.2009, 20:14
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Можно использовать класс Tween и менять с его помощью альфу от 0 до 100, например. Тогда в проекте уж точно можно оставить только по одному первому кадру во всех структурах.
Код AS1/AS2:
import mx.transitions.Tween;
item_mc._alpha = 0; //сначала объект скрыт (прозрачен)
var myTween1:Tween;
item_btn.onRelease  = function() {
  myTween1 = new Tween(item_mc, '_alpha', mx.transitions.easing.Strong.easeOut, 0, 100, 1.5, true);
}
То есть по нажатию на кнопку за полторы секунды прозрачность мувика item_mc плавным рывком выводится из нуля до полной видимости.
И вслед можно организовать появление следующего объекта:

Код AS1/AS2:
var myTween2:Tween;
myTween1.onMotionFinished = function() {
  myTween2  = ....
};
То есть когда заканчивается первое движение, тут же стартует другое.
И т.д... Можно делать разные виды плавности. Почитайте о Tween.


Последний раз редактировалось mooncar; 30.09.2009 в 21:19.
Старый 30.09.2009, 21:51
mj_nooker вне форума Посмотреть профиль Отправить личное сообщение для mj_nooker Найти все сообщения от mj_nooker
  № 3  
Ответить с цитированием
mj_nooker

Регистрация: Aug 2009
Сообщений: 99
mooncar, спасибо за идею! О Tween'е знаю и, видимо, я неполностью сформулировал вопрос, ибо нужно было ещё добавить "ПО МЕРЕ ЗАГРУЗКИ мувика" - тоесть, мне нужно поразмыслить, как реализовать появление мувиков по мере их подгрузки из инета - мол загрузился главный фон, показался, и только после этого загружается\показывается следующий подгружаемый мувик, например блок с контентом, потом так-же блок с графикой и т.д. Например делать анимацию "проявления" уже после загрузки или сделать очередь загружаемых файлов и показывать их по мере загрузки\очереди, и .тд.

Старый 30.09.2009, 21:56
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Скорее всего верным решением будет СПЕРВА все загрузить в ролик, а потом проявлять.
Используете MovieClipLoader.
Если же вам хочется все-таки, чтобы по мере подгрузки все проявлялось, то также используете MovieClipLoader.
А там после всех "предварительных ласк" с организацией лоадера и старта самой загрузки пишете ваш вызов анимации прозрачности в методе onLoadInit:
Код AS1/AS2:
loader.onLoadInit = function() {
  var myTween1:Tween;
  myTween1 = new Tween(item_mc, '_alpha', mx.transitions.easing.Strong.easeOut, 0, 100, 1.5, true);
};

Старый 01.10.2009, 02:57
mj_nooker вне форума Посмотреть профиль Отправить личное сообщение для mj_nooker Найти все сообщения от mj_nooker
  № 5  
Ответить с цитированием
mj_nooker

Регистрация: Aug 2009
Сообщений: 99
Хорошая мысль с MoviClipLoader'ом!
Однако, для эксперимента, попробовав загрузить несколько специально весомых swf (в среднем 90-100Кил) я столкнулся с тем, что мувики загружаются не по очереди, ХОТЯ пушаются в MCL по строгой очереди, и поэтому так слёту не смогу додуматься, как дожидаться загрузки каждого мувика из очереди и только потом загружать следующий.
Поэтому всё-таки идея с изначальной загрузкой сразу всех мувиков и только после этого следующего отображения - в данный момент наверное-таки действительно самая.

спасибо!

Старый 01.10.2009, 03:30
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ага, загрузите все и потом распоряжайтесь загруженным как хотите, так надежнее. Однако, если все же хотите ускорить процесс, то вот какая штука:
Цитата:
Сообщение от mj_nooker Посмотреть сообщение
ХОТЯ пушаются в MCL по строгой очереди, и поэтому так слёту не смогу додуматься
Если говоря о строгой очереди, вы используете цикл или стартуете загрузки с задержкой через setInterval, то огорчу вас - как будет загружать флешка ролики, это одной ей известно, а точнее известно только теплой компании флеш-плеера, браузера и канала связи.
Выход прост: для того, чтобы действительно была цепочка, конвеер, нужно стартовать следующий при гарантированном окончании загрузки предыдущего. То есть задать старт загрузки следующего ролика внутри метода onLoadInit предыдущего, параллельно с запуском анимации загруеженного:

Код AS1/AS2:
......
item1_mc._alpha = 0;
item2_mc._alpha = 0;
item3_mc._alpha = 0;
....
//организуем MCL
...
loader1.loadClip('item1URL', item1_mc.cont);
 
loader1.onLoadInit = function() {
  var myTween1:Tween;
  myTween1 = new Tween(item1_mc, '_alpha', mx.transitions.easing.Strong.easeOut, 0, 100, 1.5, true);
  loader2.loadClip('item2URL', item2_mc.cont);
};
 
loader2.onLoadInit = function() {
  var myTween2:Tween;
  myTween2 = new Tween(item2_mc, '_alpha', mx.transitions.easing.Strong.easeOut, 0, 100, 1.5, true);
  loader3.loadClip('item3URL', item3_mc.cont);
};
.....
.....
//и т.д.


Последний раз редактировалось mooncar; 01.10.2009 в 03:44.
Старый 01.10.2009, 21:04
mj_nooker вне форума Посмотреть профиль Отправить личное сообщение для mj_nooker Найти все сообщения от mj_nooker
  № 7  
Ответить с цитированием
mj_nooker

Регистрация: Aug 2009
Сообщений: 99
принял к размышлениям и взял на вооружение! )
спасибо!

Добавлено через 17 часов 39 минут
гм, чёт я пересидел ночью и вот подумалось - а что, если мувиков будет больше десятка и вручную описать все - будет нелогично, а логично - придумать хитрость с присвоением динамических имён мувикам и функциям?

гм

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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