Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

2003 г

Рассуждение о "прелоадере"

(Macromedia Flash 5.0).

Boroda, www.rastyle.com


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

Нам нужны всего две конструкции:

GetBytesTotal() и   GetBytesLoaded()

Первая возвращает размер ролика в байтах, а вторая - размер в байтах загруженной части ролика.

Напишем простейший прелоадер, для этого создадим новый файл. На Scene1 разместим надписи: Bytes Total, Bytes Loaded, Percent и три "пустые" надписи. Получается примерно следующее:



Теперь в окне Text Options определяем надписи как динамические и назначаем имена переменных для этих надписей (сверху вниз), например: TotalField, LoadField и PercentField:



Для первого кадра в окне Actions (установите режим Expert Mode) пишем код (все кадры - ключевые):

Total = _root.GetBytesTotal();
Переменной Total (можно не объявлять) присваиваем размер файла в байтах;

TotalField = Total;
Переменной для надписи TotalField присваиваем значение переменной Total.
Больше к этому кадру ролик не обращается. (Маловероятно, что размер вашего файла будет изменяться в процессе загрузки).

Во втором кадре пишем код:

Load = _root.getBytesLoaded();
LoadField = Load;
Percent = int(Load / Total * 100);
PercentField = Percent + "%";


Переменной Load присваиваем значение загруженной части файла;
Переменной для надписи LoadField присваиваем значение переменной Load.
Переменной Percent присваиваем увеличенное в 100 раз округленное значение отношения загруженной части файла к размеру файла, т. е. процентное значение загрузки;
Переменной для надписи PercentField присваиваем значение переменной Percent и знак "%".

Третий кадр:

if (load < Total){gotoAndPlay (2);};

Если загружено меньше, чем размер файла - перейти к кадру 2. В первом кадре мы уже все сделали. Зачем туда обращаться?

Кадр 4:

Stop();

В этом же кадре, но на другом слое уже начинается сам ролик. Разумно нарисовать кнопку Play и передавать управление на начало ролика.

Если вы сделали все правильно, то получится примерно следующее (это только картинка):



Если не вышло - вот исходный файл.

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

А нужен ли вообще прелоадер? Ответить на этот вопрос поможет сам Flash!

В режиме Test Movie в меню Debug выберите или установите свою скорость загрузки файла (учтите, что реальная скорость загрузки у пользователя будет гораздо ниже указанной):



В меню View выбираем пункт Show Streaming:



Тестируем наш ролик на различных скоростях загрузки:



Успехов!

PS. Обратите внимание: реальный размер ролика 2470 байт, а Flash "говорит", что 2468 байт! Я не знаю почему. Кто знает?

Boroda

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...