Home
Главная
Forums
Форум
Your Account
Ваш аккаунт
Web-технологии
HTML, XML, DHTML
JavaScript
SQL
PHP
Perl
SSI
ASP
CSS

Графика
Adobe PhotoShop
Adobe PhotoShop - 2
Macromedia Flash

Компьютеры
Hardware
Мобильные технологии
КПК и ноутбуки

Операционные системы
Unix/Linux
Windows 9x
Windows XP

Стоит посмотреть
  • Шкафы-купе Komandor шкафы купе


  • Шкафы-купе ShkafNet шкафы купе






  • Еще о 'прелоадере'

    (Macromedia Flash 5.0, Macromedia Flash MX)

    Для успешного освоения этого урока ознакомьтесь с предыдущем уроком о прелоадере.

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

    Загрузим наш старый файл

    Увеличим размеры документа до 500 на 300 px (или какой там вам нравится? Скорее всего поразмеру основного фильма!):

    Размещаем три надписи: Current bps (текущая скорость), Average bps (средняя скорость) и Remainig time (осталось времени). Далее помещаем на Scene1 три пустые динамические надписи для вывода значений и назначаем имена переменных для них, например: CurrentField , AverageField и RemainigField:

    Для большей "красоты" и развлечения пользователя вставим в наш прелоадер часы (см. урок) (или игрушку типа "крестики-нолики" или "тетрис", но это тема отдельного урока), для чего создадим в TimeLine папку (Folder), а в ней еще 2 слоя (эта приятная возможность появилась в Flash MX - спасибо разработчикам!):

    Теперь создадим "линейку" процесса загрузки. Для этого нарисуем вытянутый по горизонтали прямоугольник, контур оставим как есть, а заливку преобразуем в символ. Затем немного уменьшим символ (для красоты) и сместим центр символа влево (чтобы линейка увеличивалась слева направо). Запишем или запомним длинну символа:

    В разделе Instance Name назовем символ Line . Теперь наш прелоадер должен выглядеть примерно так:

    На этом с "рисованием" закончим. Пора написать немного кода.

    В первом кадре слоя PLD помещаем следующий код:

    Line._width = 0; Устанавливаем длинну "линейки", отображающей процесс загрузки равной 0;
    Total = _root.GetBytesTotal(); Присваиваем переменной Total размер файла в байтах;
    TotalField = Total; Выводим значение этой переменной на экран;
    CurS = 0; Обнуляем значение переменной, содержащей системное время в секундах;
    Load = 0; Обнуляем значение переменной, содержащей количество загруженных байтов ролика;
    E=0; Обнуляем значение переменной, содержащей время процесса загрузки ролика в секундах.

    Во втором кадре того же слоя пишем:

    B = new Date(); Переменной B присваиваем значение системного времени;
    OldS = CurS; Сохраняем значение времени в секундах;
    CurS = B.GetSeconds(); Получаем новое значение системного времени;
    if (CurS <> OldS) { Если значения сохраненного и нового системного времени не совпадают (прошла 1 секунда) выполняем следующий код:
    E = E + 1; Увеличиваем на 1 значение переменной, содержащей время с начала загрузки ролика в секундах;
    OldLoad = Load; Сохраняем значение количества загруженных байтов;
    Load = _root.GetBytesLoaded(); Получаем новое значение количества загруженных байтов;
    if (E <> 0) {Aver = int(Load / E);}; Если время загрузки ролика в секундах не равно 0, то переменной Aver присваиваем целое значение отношения загруженных байтов ко времени, пршедшему с начала загрузки в секундах (средняя скорость загрузки ролика в байтах/сек.);
    if (Aver <> 0) {Remain = int(Total / Aver);}; Если значение переменной средней скорости загрузки не равно 0, то переменной Remain присваиваем целое значение отношения размера ролика в байтах к средней скорости загрузки (примерное время до окончания загрузки в сек.);
    CurrentField = Load - OldLoad;}; Выводим в текстовое поле CurrentField количество загруженных байтов за последнюю секунду; Конец оператора if;
    RMin = int((Remain - E) / 60); Переменной RMin присваиваем целое значение количества минут до окончания загрузки;
    RSec = int(Remain - E - (RMin * 60)); Переменной RSec присваиваем целое значение количества секунд до окончания загрузки (за вычетом целых минут);
    RMin = RMin + " m"; Добавляем обозначение минут...
    RSec = RSec + " s"; ...и секунд;
    if (length(RMin) < 4) {RMin = "0" + RMin;}; Если значение минут меньше 10, добавляем спереди символ "0" (для красоты);
    if (length(RSec) < 4) {RSec = "0" + RSec;}; То же самое для секунд;
    RemainingField = RMin + " : " + RSec; Выводим значения минут и секунд, разделенные знаком ":";
    LoadField = Load; Выводим количество загруженных байт;
    Percent = int(Load / Total * 100); Переменной Percent присваиваем процент загрузки ролика;
    _root.Line._width = Percent * 4.42; Изменяем длинну символа Line в соответствии с процентным значением загрузки ролика. 4.42 - коэффициент масштабирования. Мы его запоминали, когда рисовали линейку загрузки;
    if (Percent < 100) {AverageField = Aver;}; Если ролик не загружен полностью, то выводим среднее значение скорости загрузки;
    PercentField = Percent + " %"; Выводим значение процентной загрузки.

    Третий кадр содержит единственную строчку:

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

    Если ролик не загружен - перейти к кадру 2. Но это было описано в предыдущем уроке. Ничего нового.

    Вот, собственно и все. Посмотрите исходный файл. "Навесьте" свой неповторимый дизайн и не забудьте добавить основной фильм!

    Успехов!



    Дополнительно на данную тему:

    Рисуем 'работающие' часы в Flash
    Снег во Flash
    Рассуждение о 'прелоадере'
    Flash и видео: импорт, экспорт и работа с SWF, FLV, MOV (QuickTime), AVI, MPEG
    Flash 8 обзор
    Определение скорости компьютера
    Загрузка текста и переменных во Flash
    Передача данных из Flash в серверные сценарии
    Macromedia Flash 5 (обзор)
    Macromedia Flash 5 (анимация)

    Назад | Начало | Наверх
    Rambler's Top100