Загрузка и анимация

Обсуждаем приемы и фишки в технологии Macromedia Flash

Модератор: [mweb team]

Загрузка и анимация

Сообщение SalazaR Пт апр 01, 2005 18:52

Подскажите пожалуйста! ПОЖАЛУЙСТА!

1. Как сделать чтоб анимация была плавной? Просто я самневаюсь что ее делают покадрово.
2. Как сделать загрузку? Всмысле чтоб пока сайт грузится шол влеш ролик загрузки.
Аватара пользователя
SalazaR
Прохожий
 
Сообщения: 8
Зарегистрирован: Сб мар 26, 2005 10:44

Сообщение SalazaR Сб апр 02, 2005 17:16

НУ ПОМОГИТЕ!
Аватара пользователя
SalazaR
Прохожий
 
Сообщения: 8
Зарегистрирован: Сб мар 26, 2005 10:44

Сообщение SuhOFF Сб апр 02, 2005 17:48

Ну ты, конечно, запросил...
Вкратце, чтоб анимация была не покадровая, во флеше есть такая фигня как tweening
Motion tweening - флеш создаёт между 2-мя ключевыми кадрами некую процедуру, изменяющую геометрические размеры, цвет, прозрачность, яркость объекта или символа.
Shape tweening - работает с кривыми, тоже достаточно 2-х ключевых кадра.

О загрузчике - есть пару прикольных функций - getBytesLoaded() и getBytesTotal().

Вот в кратце и всё.
Настоящий китаец в жизни должен сделать 3 вещи - кеды, игрушку и магнитофон.
Аватара пользователя
SuhOFF
Прохожий
 
Сообщения: 25
Зарегистрирован: Сб фев 26, 2005 18:41
Откуда: dp.ua

Сообщение SalazaR Сб апр 02, 2005 17:54

Пасиба конечно, но гдеб я мог почитать про эти функции подробнее?
Аватара пользователя
SalazaR
Прохожий
 
Сообщения: 8
Зарегистрирован: Сб мар 26, 2005 10:44

Сообщение ass Пн апр 04, 2005 6:52

в учебнике....

кстати, ни у кого нет учебника по флеш-программированнию для ламеров?
егегеей епта!
Аватара пользователя
ass
Заядлый `курильщик`
 
Сообщения: 600
Зарегистрирован: Сб фев 26, 2005 8:06
Откуда: Питер

Сообщение SuhOFF Пн апр 04, 2005 13:41

Чтоб далеко не ходить...

http://mweb.ru/flash/1_01.php
только не для ламеров, а для чайников, но тоже, я думаю, подойдёт... -06-

А так, полазьте по нету - этого добра полно.
Настоящий китаец в жизни должен сделать 3 вещи - кеды, игрушку и магнитофон.
Аватара пользователя
SuhOFF
Прохожий
 
Сообщения: 25
Зарегистрирован: Сб фев 26, 2005 18:41
Откуда: dp.ua

Сообщение Олежек Пн апр 04, 2005 18:23

Изображение

Україна понад усе! My LiveJournal
Аватара пользователя
Олежек
Заядлый `курильщик`
 
Сообщения: 629
Зарегистрирован: Пн апр 04, 2005 15:28
Откуда: Україна (Київ)

Сообщение Олежек Ср апр 06, 2005 16:40

Вот вам нарыл да и себе заодно урок по єтому делу http://m-books.nm.ru/Preloader.rar
Изображение

Україна понад усе! My LiveJournal
Аватара пользователя
Олежек
Заядлый `курильщик`
 
Сообщения: 629
Зарегистрирован: Пн апр 04, 2005 15:28
Откуда: Україна (Київ)

Сообщение Олежек Сб апр 09, 2005 16:14

В общем от этих модераторов некакой пользы!
Вот сам нашел использовал и вам рекомендую!
Все работает на все 100%



Прелоадеры или предварительные загрузчики, если по-русски, вызывают у некоторых пользователей множество вопросов. Может быть, прочитав этот урок, многие смогут понять, что на самом деле все просто! Я расскажу как сделать процентный прелоадер, прелоадер в виде заполняемой полоски и другие виды прелоадеров.

Для прелоадера лучше всего оставлять первый кадр во flash-фильме. Итак, процентный прелоадер:

В кадре, где будет находиться загрузчик, поставьте код stop();
Создайте текстовое поле Dinamic Text с именем переменной text, в его свойствах уберите параметр Selectable.

Выделите текстовое поле мышкой, нажмите F8, в появившемся окне выберите Movie Clip, в поле Name введите preloader.

Нажмите на созданный клип правой кнопкой мыши, выберите Actions, вставьте сценарий:
onClipEvent (enterFrame) {
percent = Math.floor((_root.getBytesLoaded()/_root.getBytesTotal())*100);
text = percent+"%";
if (_root.getBytesLoaded() >= _root.getBytesTotal()) {
_root.gotoAndPlay(2);
}
}








Разберем всё по строчке...

onClipEvent (enterFrame)- это обработчик события, который позволяет постоянно обновлять значение текстового поля внутри клипа preloader путем постоянной вставки в него еще одного кадра.

percent = Math.floor((_root.getBytesLoaded()/_root.getBytesTotal())*100); - это переменная. Math.floor() - это функция для округления значения до целого числа. Ведь проценты нужно округлить, а не "любоваться" числами с плавающей точкой. _root.getBytesLoaded() - функция, которая возвращает число со значением количества загруженных байт на данный момент. _root.getBytesTotal() - функция, которая возвращает число со значением размера всего flash-фильма в байтах. Таким образом, мы делим количество полученных байт на данный момент на общее число байт и умножаем все это на 100 и полученное значение округляем до целого. Итак, получем данные о загрузке flash-фильма в процентном отношении.

text = percent+"%";

Переменная, которая выводит значение переменной percent в текстовое поле с именем переменной text и прибавляет ко всему этому значению знак процента ("%").

if (_root.getBytesLoaded() >= _root.getBytesTotal()) {
_root.gotoAndPlay(2);
}
}

Если количество загруженных байт будет больше либо равно общему количеству байт клипа, то начать проигрывать flash-фильм, то есть второй кадр главной сцены. Процентный прелоадер готов! Думаю, что в его создании нет ничего сложного.


--------------------------------------------------------------------------------

Для прелоадера в виде заполняемой полоски нужно создать клип из 100 (а можно не из 100) кадров, в котором маской нужно будет перекрывать заполнение полоски и поставить на этот клип код:

onClipEvent (enterFrame) {
percent = Math.floor((_root.getBytesLoaded()/_root.getBytesTotal())*100);
gotoAndPlay(percent);
if (_root.getBytesLoaded()>=_root.getBytesTotal()) {
_root.gotoAndPlay(2);
}
}









gotoAndPlay(percent); - клип будет играть тот кадр, который передаст ему переменная percent, например если загрузится 47 процентов, то и в клипе будет играть 47 кадр. Если количество кадров в прелоадере не равно 100, как у меня, то просто поменяйте 100 на ваше число в строке переменной percent: ...etBytesTotal())*100 - вот тут! если у вас прелоадер из 40 кадров, что переменная будет выглядеть так:

percent = Math.floor((_root.getBytesLoaded()/_root.getBytesTotal())*40);

Повесьте этот выше описанный код на любой Movie Clip и получитя прелоадер! Это может быть не только загрузчик в виде линии, а, например, заполняемый водой стакан или что-нибудь еще!

Как проверить прелоадер? Откройте fla-файл, нажмите Ctrl+Enter, выберите в меню Debug нужную скорость и снова Ctrl+Enter!

Что-то не получилось? Скачайте исходник!

Что-то не понятно? Кидайте пост в форум! Объясним популярно!

Удачи всем!
Изображение

Україна понад усе! My LiveJournal
Аватара пользователя
Олежек
Заядлый `курильщик`
 
Сообщения: 629
Зарегистрирован: Пн апр 04, 2005 15:28
Откуда: Україна (Київ)

Сообщение SuhOFF Пн апр 11, 2005 9:49

Олежек писал(а):
Для прелоадера в виде заполняемой полоски нужно создать клип из 100 (а можно не из 100) кадров, в котором маской нужно будет перекрывать заполнение полоски


Замысловато.
Можно попроще, без 100 какдров и масок.
С помощью

this.length = percent*length0;
Настоящий китаец в жизни должен сделать 3 вещи - кеды, игрушку и магнитофон.
Аватара пользователя
SuhOFF
Прохожий
 
Сообщения: 25
Зарегистрирован: Сб фев 26, 2005 18:41
Откуда: dp.ua

Сообщение diman Вт май 24, 2005 13:49

this.length = percent*length0;[/quote]

куда повесить этот код? на любой клип?
можно подробней, так как очень важная тема...и насколько он эффективен по отношению с гетбит лоад и т п...как он рабоает?!
gotoAndPlay
diman
Прохожий
 
Сообщения: 7
Зарегистрирован: Пт май 20, 2005 18:02
Откуда: gangubasland


Вернуться в Flash

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

cron