IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Индикатор загрузки
Серж
сообщение 27.11.2005 - 22:48
Сообщение #1





Гости






(IMG:http://f.hostq.ru/forum/style_emoticons/default/blink.gif)
Ребят, подскажите ,как индикатор загрузки сделать.
Сайт конечно весит всего ничего да и нэт у меня быстрый но все равно очень мучает этот вопрос, а прочитать нигде не могу....
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
MustLive
сообщение 28.11.2005 - 02:55
Сообщение #2


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4846
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата(Серж @ 27.11.2005 - 22:48)
(IMG:http://f.hostq.ru/forum/style_emoticons/default/blink.gif)
Ребят, подскажите ,как индикатор загрузки сделать.

Серж

Есть два варианта. С получением точного процента загрузки и без.

В простом случае, создаются два фрейма, которые находят после аплоадера (можно использовать две сцены, одна основная, а перед ней - сцена с прелоадером), один кадр будет в начале нашей основной флешки (называем его "start"), а второй в конце ("end").

Код в кадре с аплоадером следующий:
Код
ifFrameLoaded ("end") {
      gotoAndPlay ("start");
}


Далее мы зацикливаем прелооадер, говорим в следующем кадре вернуться назад. Дабы прелооадер "крутился" пока не сработает условие перехода в основную флешку.

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

В первом кадре ставим код:
Код
onClipEvent (load) {
    total = _root.getBytesTotal();
}

onClipEvent (enterFrame) {
    loaded = _root.getBytesLoaded();
    text = Math.floor(loaded/total*100);
    text = text+"%";
    if (loaded >= total){
  _root.gotoAndStop(2)}
    }
}

И зацикливаем первый кадр. Во втором идёт наша основная флешка. Можно также сделать две сцены (с прелоадером и основной флешкой). Текст с текущим процентом загрузки заносится в переменную text.

Цитата
но все равно очень мучает этот вопрос, а прочитать нигде не могу....

Почитать можете здесь:

http://www.google.ru/search?q=flash+preloader
http://www.google.ru/search?q=flash+%D0%9F...%B4%D0%B5%D1%80

Create a Simple Flash Preloader using basic actionscript
http://www.smartwebby.com/Flash/Flash_simple_preloader.asp
Простой прелоадер. Просто строка "лоадинг". Можно сделать и не строку, а любую другую анимацию.

Делаем прелоадер на Flash (процент загрузки)
http://web-support.ru/articles/14/55_1.shtml
Более сложный прелодаер. Более полно использует возможности акшон скрипт. Получаем точный процент загрузки. Можно кроме простой демонстрации процента, сделать продвинутую анимацию (например часы, в которых стрелка показывает процент загрузки и т.д.).
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
сашуля
сообщение 1.01.2007 - 05:09
Сообщение #3


Новичок
*

Группа: Новичок
Сообщений: 35
Регистрация: 30.12.2006
Пользователь №: 2269



у меня макромедия МХ6... я сделал флэшку из двух сцен... первая из них- загрузка... она состоит на бум из 6 кадров (0%, 38%, 44%, 58%, 99%, 100%) в первом кадре я использовал описанный вами скрипт:

onClipEvent (load) {
total = _root.getBytesTotal();
}

onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
text = Math.floor(loaded/total*100);
text = text+"%";
if (loaded >= total){
_root.gotoAndStop(2)}
}
}

...по истечению этой сцены начинается сама флэшка... при создании загрузки, я не вёл никаких временных расчётов. Я хочу разместить этот ролик на своём сайте. Насколько эта загрузка корректна? можно ли ей доверять? скрипт использованный в первом кадре, даёт гарантию, что переход на вторую сцену не произойдёт до того, как ролик полностью загрузится в экранах у поситителей моего сайта?

MustLive писал:
И зациливаем первый кадр.

Что это значит? Что я не доделал, подскажите пожалуйста? Разве в последнем кадре загрузки не надо использовать никаких скриптов?

Сообщение отредактировал сашуля - 1.01.2007 - 05:15
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tiHo
сообщение 1.01.2007 - 12:39
Сообщение #4


C:\>
*****

Группа: Супермодераторы
Сообщений: 1599
Регистрация: 10.04.2006
Из: Млечный Путь, 3-я планета от Солнца, Россия, Московская область, Жуковский.
Пользователь №: 293



Цитата(сашуля @ 1.01.2007 - 05:09) *
у меня макромедия МХ6...


ставь 8-ю! (IMG:http://f.hostq.ru/forum/style_emoticons/default/smile.gif)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 1.01.2007 - 16:21
Сообщение #5


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4846
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
MustLive писал:
И зациливаем первый кадр.

Что это значит? Что я не доделал, подскажите пожалуйста? Разве в последнем кадре загрузки не надо использовать никаких скриптов?

сашуля

Это значит зацикливаем первый кадр (или первую сцену). Букву "к" пропустил. Зацыкливание обязательно, чтобы корректно работал прелодер, и не загружалась основная часть флешки - и лишь после полной загрузки ролика идёт переход на второй кадр (или вторую сцену) с основным содержанием.

сашулька, если по какому-либо описанию не разобрался и/или не заработало сразу, то не поленись (IMG:http://f.hostq.ru/forum/style_emoticons/default/wink.gif) , почитай другие описания, а также те примеры разработки прелоадеров, ссылки на которые я привел. И особенно могут помочь те примеры, к которым даются исходники. Которые можно посмотреть и разобраться.

Цитата
Насколько эта загрузка корректна? можно ли ей доверять? скрипт использованный в первом кадре, даёт гарантию, что переход на вторую сцену не произойдёт до того, как ролик полностью загрузится в экранах у поситителей моего сайта?

Чтобы всё работало корректно, и не загружалась основная часть флешки, то нужно использовать зацикливание прелоадера (первого кадра или первой сцены, смотря как ты сделал).

Само зацикливание делается с помочью перехода на первый кадр:
Код
_root.gotoAndStop(1);

Происходит переход на первый кадр (или первый кадр первой сцены).

Цитата
ставь 8-ю!

Можешь и 8й флеш конечно поставить, дабы быть на передовой. В этом году, 2007, кстати, выходит 9й флеш, которого ждём с нетерпением.

Ссылки на 8й флеш, для скачивания, я на форуме приводил. Можно скачать как полную версию с креком, так и триал версию с сайта Адоба, а потом крек найти в Интернете.

Но флеш 6/мх - это моя любимая версия флеша (IMG:http://f.hostq.ru/forum/style_emoticons/default/smile.gif) . Так что можешь поставить себе обе версии (они могут работать параллельно).
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
сашуля
сообщение 1.01.2007 - 17:52
Сообщение #6


Новичок
*

Группа: Новичок
Сообщений: 35
Регистрация: 30.12.2006
Пользователь №: 2269



спасибо, обязательно прочту все посты на эту тему...
То есть этот скрипт _root.gotoAndStop(1); просто ставится в последнем кадре загрузки?

Чтобы была полная картина того, что творится в моей флэшке, опишу так:
две сцены:1)загрузка (из шести беспорядочно набранных кадров, имитирующих цифры с процентами лоудинга), 2)флэш-ролик с музыкой (450кб)

в первом кадре загрузки, который называется "0%", я применил эти действия:
onClipEvent (load) {
total = _root.getBytesTotal();
}

onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
text = Math.floor(loaded/total*100);
text = text+"%";
if (loaded >= total){
_root.gotoAndStop(2)}
}
}

...а в последнем кадре загрузки, который называется "100%", я применил тот скрипт "Зацикливания", который вы мне дали:
_root.gotoAndStop(1);

...правильно?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 2.01.2007 - 01:32
Сообщение #7


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4846
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
То есть этот скрипт _root.gotoAndStop(1); просто ставится в последнем кадре загрузки?

Да, сашуля, в последний кадр прелоадера.

Цитата
1)загрузка (из шести беспорядочно набранных кадров, имитирующих цифры с процентами лоудинга),

Незачем это делать. Так как при твоём текущем подходе, твои цифры будут зациклено появлятся. Это лишнее, я ведь уже ранее дал пример прелоадера, в котором индикатор предусмотрен.

Строка text = text+"%" означает, что в процессе загрузки флешки, будет постоянно исполнятся этот код и обновляться информация о сотоянии загрузки флешки. Это информация будет обновлятся на экране, в переменной text, которую ты должен присвоить текстовой надписи. Чтобы она отображала текущее значение переменной text.

Цитата
...правильно?

И тогда уже всё будет правильно работать. Хотя возможны различные варианты разработки прелоадера (с использованием общих базовых идей). Можно, например, не индикатор крутить или не один индикатор, а ту же анимацию или даже сделать мини игру в процессе загрузки.

За дополнительной информацией смотри другие темы форума, а также мануалы по прелоадерам в Сети.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
сашуля
сообщение 2.01.2007 - 01:59
Сообщение #8


Новичок
*

Группа: Новичок
Сообщений: 35
Регистрация: 30.12.2006
Пользователь №: 2269



Цитата(MustLive @ 2.01.2007 - 01:32) *
Незачем это делать. Так как при твоём текущем подходе, твои цифры будут зациклено появлятся.


то есть мои цифры будут повторяться снова и снова, пока ролик не загрузится?!)))

Представляю себе человек ждёт начала ролика и после 100% опять начинается 0% и.т.д... Ты это имел ввиду?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 2.01.2007 - 18:21
Сообщение #9


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4846
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
то есть мои цифры будут повторяться снова и снова, пока ролик не загрузится?!)))

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

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

Вариант с процентным индикатором, это классический вариант прелоадера. Можно сделать, на той же основе, ещё один популярный вариант - с полоской загрузки, когда она растёт до 100% (причём нередко полоску и процентный индикатор совмещают). Код несложный, чуток изменится приведённый код (чтобы реализовать полоску, код числового индикатора уже приведён).

Также можно реализовать часы, чтобы по циферблату шёл процесс загрузки. Что пять же несложно (код похожий). Мне доводилось разные далать загрузчики. Ну и вариантов прелоадеров имеется множество. Почитай инфу на форуме и манулы в Сети. И главное сделай и посмотри как это работает, чтобы разобраться.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 16.11.2009 - 17:36
Сообщение #10


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Цитата(MustLive @ 28.11.2005 - 02:55) *
В первом кадре ставим код:
Код
onClipEvent (load) {
    total = _root.getBytesTotal();
}

onClipEvent (enterFrame) {
    loaded = _root.getBytesLoaded();
    text = Math.floor(loaded/total*100);
    text = text+"%";
    if (loaded >= total){
  _root.gotoAndStop(2)}
    }
}

И зацикливаем первый кадр. Во втором идёт наша основная флешка. Можно также сделать две сцены (с прелоадером и основной флешкой). Текст с текущим процентом загрузки заносится в переменную text.
Почитать можете здесь:

что такое onClipEvent (load)? Каков его аналог в AS3? Это какое-то событие, как я понимаю?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 16.11.2009 - 18:19
Сообщение #11


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Rotwang @ 16.11.2009 - 17:36) *
что такое onClipEvent (load)? Каков его аналог в AS3? Это какое-то событие, как я понимаю?


В AVM1 onClipEvent (load) оно же MovieClip.onLoad - это событие, когда мувиклип на таймлайне полностью подгрузился и отобразился.

В AVM2 это событие complete у свойства (объекта) loaderInfo экранного объекта.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 16.11.2009 - 20:13
Сообщение #12


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Цитата(chingachgoog @ 16.11.2009 - 18:19) *
В AVM2 это событие complete у свойства (объекта) loaderInfo экранного объекта.

Так. (IMG:style_emoticons/default/mad.gif) Получается, если у меня в первом кадре флешки находится прелоадер, он загрузится первым. Правильно? Значит, в первом кадре нужно зарегистрировать объект.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, CompleteListener);?
А что же будет объектом? root?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 16.11.2009 - 20:36
Сообщение #13


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Cм. второй способ обращения к объекту LoaderInfo
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 17.11.2009 - 18:26
Сообщение #14


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Цитата(chingachgoog @ 16.11.2009 - 20:36) *
Cм. второй способ обращения к объекту LoaderInfo

(IMG:http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/images/loaderInfo_object.jpg)
chingachgoog, что на этом рисунке? (IMG:style_emoticons/default/sad.gif)
Второй способ - Свойство loaderInfo экранного объекта.
Что на этой схеме - мой случай?
К тому же в обычном прелоадере(например для зпгружаемой в SWF картинки) текстовое поле с процентами обновляется в progressListenere, а не в completeListener.

Самое главное, что мне непонятно: Когда мы загружаем картинку во флешку с какого-нибудь URL, мы сначала создаем, например, loader = new Loader(new URLRequest("http://maximumrisk.narod.ru/kremlin.jpg"))
Затем регистрируем
Код
loader.contentLoaderInfo.addEventListener(Event.INIT, initListener);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeListener);

И дальше уже в progressListener можем обновлять текстовое поле с процентами загрузки, и добавлять объект на экран. Это все мне понятно.
А если сама SWF грузится, то для чего делать loader? Ведь нет адреса URL?

Сообщение отредактировал Rotwang - 17.11.2009 - 18:51
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 17.11.2009 - 21:10
Сообщение #15


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Rotwang @ 17.11.2009 - 18:26) *
Что на этой схеме - мой случай?


Синенький слева вверху (IMG:style_emoticons/default/smile.gif)

Цитата(Rotwang @ 17.11.2009 - 18:26) *
К тому же в обычном прелоадере(например для зпгружаемой в SWF картинки) текстовое поле с процентами обновляется в progressListenere, а не в completeListener.


Вопрос был про аналог onClipEvent (load)

Цитата(Rotwang @ 17.11.2009 - 18:26) *
А если сама SWF грузится, то для чего делать loader? Ведь нет адреса URL?


А где там во втором способе лоадер???
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 18.11.2009 - 18:39
Сообщение #16


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Вроде разобрался. Нужно зарегистрировать Event.ENTER_FRAME и во frameListener проверять loaderInfo.bytesTotal и loaderInfo.bytesLoaded?
И когда они сравняются, запускать 2-й кадр, в котором все содержимое флешки и помещается. А пока это условие не наступило, прокручивать прелоадер.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 18.11.2009 - 19:53
Сообщение #17


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Rotwang @ 18.11.2009 - 18:39) *
Вроде разобрался. Нужно зарегистрировать Event.ENTER_FRAME и во frameListener проверять loaderInfo.bytesTotal и loaderInfo.bytesLoaded?
И когда они сравняются, запускать 2-й кадр, в котором все содержимое флешки и помещается. А пока это условие не наступило, прокручивать прелоадер.


Можно, наверное и так. А можно и без энтерфрейма, а по событию progress.
Проверяйте сами - я пока с AS3 не работаю.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 22.11.2009 - 21:36
Сообщение #18


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Есть у меня 2 флешки. В обоих в 1 кадре прелоадер. Но в одной из флешек во втором кадре находится тяжелая фотография(чтобы загружалась дольше и видно было, как работает прелоадер), а в другой флешке на втором кадре висит код, который выводит фотки из библиотеки на сцену. Так вот, во флешке с тяжелой фоткой прелоадер включается, а в другой нет. Прикрепленный файл  files.rar ( 762.77 килобайт ) Кол-во скачиваний: 1
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 23.11.2009 - 12:45
Сообщение #19


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Rotwang @ 22.11.2009 - 21:36) *
а в другой флешке на втором кадре висит код, который выводит фотки из библиотеки на сцену. Так вот, во флешке с тяжелой фоткой прелоадер включается, а в другой нет. Прикрепленный файл  files.rar ( 762.77 килобайт ) Кол-во скачиваний: 1


Это потому, что все фотки находяться в первом кадре (IMG:style_emoticons/default/smile.gif)
(см. Пролеадер програмно, только с учетом того, что в AS3 все еще более геморно)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 23.11.2009 - 18:21
Сообщение #20


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



chingachgoog, это?
Цитата
1) Использовать внешние прелоадеры (самый простой и надежный способ).
2) Обмануть пользователя (сделать псевдозагрузку до текущей, а потом, когда псевдозагрузка догонит настоящую, передать значения настоящей)
3) Экспортировать тяжелые вещи в любой другой фрейм, кроме первого.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 18.06.2013 - 11:59