Хорошим стилем написания программ является предварительное создание псевдокода. С его помощью мы описываем, что должно произойти, и согласно этому сценарию пишем саму программу. В случае с предварительным загрузчиком произойти должно многое. Основной фильм должен остановиться на кадре 1. Предварительный загрузчик должен продвинуться вперед до метки StartMovie и задать простой вопрос: достаточно ли загружено кадров для того, чтобы обеспечить безостановочное воспроизведение фильма? Это можно определить с помощью Bandwidth Profiler. После этого можно определить, сколько кадров или байт должно быть загружено до того, как начнет воспроизводиться фильм. В данном случае мы будем принимать в расчет количество байт.
Если из основного видеоряда не было загружено правильное количество кадров, выполните следующие действия.
Если в основном видеоряде было загружено правильное количество кадров, переместите заголовок воспроизведения на метку StartMovie и начните воспроизведение.
Ниже описывается, как используется ActionScript для обслуживания раздела предварительной загрузки, добавленного в фильм.
Совет
Если при работе с Flash MX существуют слои Actions и Labels, второй всегда помещается над первым. Слой Actions всегда находится выше слоев содержания. Это помогает немного организовать видеоряд. Нахождение слоя Labels на верхнем уровне позволяет сразу же находить и использовать нужные метки видеоряда. Слой Scripts хранит все действия, производимые в кадрах.
This.onEnterFrame = function() {
preloadAmount = _root.getBytesTotal()/1.5
//количество байт, которые предстоит загрузить
//здесь подразумевается использование модемов 28.8К
loadedWidth = bar._Width
//ширина индикатора загрузки
if (_root.getBytesLoaded() < preLoadAnount)
{
var;percentage=(_root.getBytesLoaded()/preLoadAmount);
//Если загрузка все еще продолжается, вычисляем процент
//загруженного
progress._width=parselnt(loadedWidth*percentage);
//устанавливаем ширину индикатора, используя
//процент от общей ширины
percentageDisp=parse!nt(percentage*100)+"%";
//если отображается текстовый индикатор,
//получаем целочисленное представление процента
//и помещаем в текстовое поле
}
else
(
root.gotoAndPlay("MovieStart");
//если для воспроизведения загружено достаточно,
//даем указание на воспроизведение основного видео
} } В приведенной выше программе прокомментированы действия, выполняемые каждой строкой. Первая строка устанавливает клип Progress Bar так, чтобы он выполнял приведенную программу каждый раз, когда Flash попытается переместиться к следующему кадру. После того как загружен достаточный объем видео, предварительный загрузчик перемещается к кадру с меткой StartMovie и начинает воспроизведение. Когда видео начнет воспроизводиться, о клипе Progress Bar и программе можно забыть.