Тестирование загрузки кадра
Для того чтобы сделать недоступными процедуры, содержание для которых еще не загружено, используйте процедуру ifFrameLoaded (если кадр загружен). Создайте начальную анимацию, которая будет воспроизводиться, пока загружается остальной фильм. Процедура ifFrameLoaded (если кадр загружен) полезна для проверки загрузки основного файла (типа растра или звука). Можно также использовать свойство _framesLoaded (в пределах процедуры if), чтобы проверить доступность содержания определенного кадра. С помощью процедуры или свойства можно запустить простую анимацию, пока остальная часть фильма загружается на локальный компьютер; в обоих случаях проверяется доступность для воспроизведения содержания определенного кадра. Как правило, процедура ifFrameLoaded (если кадр загружен) используется как процедура кадра, но она же может использоваться как процедура кнопки. Для проверки выполнения условия IfFrameLoaded (если кадр загружен) используется настройка Streaming (Поток) для команды Test Movie (Тестировать фильм), при этом кадры загружаются с Web-сайта как бы потоком.
См. разд. "Тестирование загрузки фильма" гл. 14, Для того чтобы проверить, загружен ли кадр:
- Выделите кадр, трансформу кнопки или трансформу фрагмента фильма, которой вы предполагаете назначить процедуру.
- Выберите команду Window › Actions(Окно › Процедуры), чтобы вызвать панель Actions (Процедуры).
- В списке Toolbox (Набор инструментов) щелкните на категории Basic Actions (Основные процедуры), чтобы вызвать список основных процедур, и выберите пункт If Frame Is Loaded (Если кадр загружен).
- В панели Parameters (Параметры) для Scene (Сцена) выберите сиену, содержащую желательный кадр: укажите опцию Current Scene (Текущая сцена) или имя сцены.
- Для настройки Type (Тип) выберите Frame Number (Номер кадра). Frame Label (Ярлык кадра) или Expression (Выражение).
- Для настройки Frame (Кадр) определите кадр, который загрузится, прежде чем будет вызвана процедура. Укажите Frame Number (Номер кадра), Frame Label (Ярлык кадра) или Expression (Выражение), аналогично инструкции на шаге 5.
- Выберите процедуру, которая должна выполниться, когда будет загружен определенный кадр. Flash введет следующий код ActionScript в список Actions (Процедуры):
IfFrameLoaded(
100
) {
GotoAndPlay(
10
);
}
Для того чтобы применить процедуру ifFrameLoaded (если кадр загружен) для воспроизведения короткой анимации при загрузке основного фильма:
- Создайте короткий цикл анимации в начале фильма. Самое простое – создать цикл, который показывает сообщение "Фильм загружается…"
- При помощи процедуры ifFrameLoaded (если кадр загружен) создайте процедуру кадра, которая переключит воспроизведение фильма от циклической начальной анимации к основному фильму, когда все кадры будут загружены.
Например, для фильма с 30 кадрами, в начале которого расположен анимированный цикл из 2 кадров, требуется следующая процедура в первом кадре:
IfFrameLoaded(
30
) {
GotoAndPlay(
3
);
}
Для завершения примера назначьте следующую процедуру второму кадру, чтобы повторно начать воспроизведение в Кадре 1:
GotoAndPlay(
1
);
Когда загружается кадр, указанный в процедуре ifFrameLoaded (если кадр загружен), воспроизведение фильма переходит ко второму кадру и продолжает воспроизводить фильм с третьего кадра. Для того чтобы использовать свойство _framesloaded в процедуре для воспроизведения во время загрузки фильма короткого анимированного цикла;
- Создайте короткий анимированный цикл в начале фильма. Например, можно создать цикл, который показывает сообщение "фильм загружается…"
- Создайте процедуру кадра, которая выведет воспроизведение из цикла, когда кадры наконец будут загружены, и которое продолжит воспроизведение фильма.
Например, для фильма, содержащего анимированный цикл из двух кадров в начале, требуется следующая процедура, назначенная второму кадру:
if
(_framesloaded
=
100
) {
GotoAndPlay(
3
);
}
else
{
GotoAndPlay(
1
);
}
Подробную информацию о свойстве _framesloaded см. в руководстве по ActionScript.