http://www.mrflasher.com/webmaster/flashpreloader.html Рассмотрим реальную ситуацию:
Вы в поле лица трудились, аж целых два дня, создавали свой шедевр, который, несомненно, заставит ваших конкурентов лопнуть от зависти, импортировали все красивые картинки, которые были в наличии и ко всей этой радости записали голосовой комментарий.
Получилось несколько тяжеловато (мегобайта 2-3), ну да это ерунда, зато круто!
Закачали свое чудо на любимый сайт и решили посмотреть, как все это "идет" а "идет" плохо, кадры загружаются рывками, прорисовка странная и голос обрывается, но самое досадное, куда-то пропала вся крутость.
Я сейчас не буду рассуждать о целесообразности импортированной графики или советовать использовать потоковый звук, все это будет позже. Реально оценить, как будет загружаться Ваш фильм, можно и без подключения в интернет.
Тестирование скорости загрузки:
Во время обычного тестового просмотра Control/Test Movie откройте меню "Control", установите скорость загрузки, например - 14,4 (1,2 Kb/s) и выберите Show Streaming. Фильм начнет проигрываться с самого начала и эмулировать загрузку с выбранной скоростью. Вы можете получить множество полезной информации о времени загрузки кадров, их объеме, если включите окно информации - View/Bandwidth Profiler.
Вы, несомненно, не раз видели сайты, на которых процесс загрузки сопровождается выводом информации о загруженном объеме. Это так называемые предзагрузчики. Они просто незаменимы при размещении своих работ в интернет.
Имеет смысл использовать предзагрузчики во всех случаях, когда объем swf файла более 10-15 кб. .
Проверка загруженного кадра - If Frame Is Loaded (FrameNumber) :
Это уже знакомый Вам условный оператор "If", но в данном случае в качестве условия проверки, служит указание конкретного кадра "FrameNumber".
Рассмотрим его параметры:
Выпадающее меню "Scene" - сцена в которой мы будем делать проверку, по умолчанию стоит значение - текущая сцена, т.е. если у Вас весь фильм состоит из одной сцены то значение менять необязательно.
Frame - здесь мы указываем номер конкретного кадра, имя метки кадра "Label" (что, разумеется удобнее) или, если выберем вариант "Expression", вычисляемое условие (применяется при создании проектов построенных по модульному принципу).
В рабочем виде данный условный оператор, может выглядеть следующим образом:
If Frame Is Loaded (Scene 2, "end")
Go to and Play (Scene 2, "start")
End Frame Loaded
Go to and Play (25)
Предположим, данный скрипт находится на сцене "Scene 1" в конечном, 30-ом кадре.
После того, как закончится проигрывание первого эпизода, т.е. фильм дойдет до 30-го кадра первой сцены, произойдет проверка - "а не загрузилась ли вторая сцена?".
Если нет, то фильм перейдет на 25-й кадр текущей сцены и после того, как условие станет истинным, т.е. вторая сцена будет загружена, произойдет ее запуск.
Пошаговые загрузчики, можно применять, как для маленьких проектов.
Например, Вы создали меню для сайта и хотите, чтобы зритель не видел, как оно прорисовывается, а появлялась уже нарисованная картинка. Так и для очень больших проектов, каждая часть которых длится долго сама по себе (презентации, мультфильмы и т.д.) и возможна загрузка следующей сцены во время проигрывания текущей.
Для проверки загрузки кадра используется framesloaded (внутри указания If) или указание If Frame Is Loaded - чтобы проверить, имеется ли содержание конкретного кадра на локальном диске.
Обычно _framesloaded или If Frame Is Loaded используется для того, чтобы проиграть простенькую анимацию в то время, как остаток клипа загружается из интернета.
Разница между этими двумя указаниями заключается в том, что при использовании If (_framesloaded) вы можете легко добавить указание Else или Else If. Указание If Frame Is Loaded позволяет указать число кадров в простом указании.
Чтобы использовать framesloaded в наборе инструкций (action) который проигрывает короткую анимацию в то время, пока грузится клип:
1. Создайте короткую анимацию которая проигрывается "по кругу" в начале клипа. Например, вы можете создать "петлю", которая все время показывает надпись "идет загрузка..."
2. Создайте набор инструкций (action) для кадра с указанием If Frame Is Loaded, который заставит клип "выпрыгнуть" из анимации после того как загрузятся все кадры и продолжить проигрывание клипа. Например, если в вашем клипе на первом и втором кадре находится анимация (которая крутится между кадрами 1 и 2), следующий action должен находиться на кадре номер 2.
If (_framesloaded)
Go to and Play (3)
Else
Go to and Play (1)
End If
Когда вы создаете указание If Frame is Loaded, Flash автоматически вставляет End If Frame is Loaded в конце указания.
На кадре No 2 пропишите action, который заставит клип возвращаться на кадр No 1: Go to and play (1) Когда загрузится кадр, номер которого указан в указании If Frame is Loaded , второй кадр будет проигнорирован и клип будет проигрываться дальше, начиная с 3 кадра. Указание If Frame is Loaded так же хорошо годится для проверки загрузки части клипа. содержащей особенно крупную картинку или большой звуковой файл.
Обычно указание If Frame Is Loaded используется в наборе инструкций для целого кадра. Но иногда это указание можно использовать и для отдельной кнопки.
Чтобы проверить работу таких указаний, используйте команду Test Movie (в меню control).
Клип будет загружаться в такой же последовательности, как если бы его загружали из интернета.
Команда If Frame Is Loaded имеет следующие параметры:
Frame - обозначает номер кадра, который должен быть полностью загружен прежде чем будет выполняться следующее указание.
Scene - это сцена, содержащая этот кадр.