Иллюстрированный самоучитель по Web-разработке на Macromedia Studio MX

Создание загрузчика во Flash MX

В нашем ролике есть два растровых изображения. Как вы знаете, растровые изображения сильно замедляют работу Flash MX. Имея это в виду, мы должны сделать так, чтобы браузер ждал, пока не загрузится 30-й кадр, чтобы ролик мог продолжать воспроизведение. В противном случае могут возникнуть проблемы, связанные с задержкой при загрузке рисунка.

При работе с языком Actionscript хорошей практикой является использование псевдокода. Псевдокод – это алгоритм, записанный на обычном языке, в котором сказано, что и когда должно произойти. Потом на основе псевдокода легко написать команды языка Actionscript.

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

  • Когда воспроизведение дойдет до первого кадра, проверить, все ли 30 кадров загрузились.
  • Если не все кадры загрузились, перейти ко 2-му кадру, а затем к 1-му.
  • Если все кадры загрузились, пропустить 2-й кадр и воспроизвести ролик полностью.

Теперь ясно, как писать программу. Нам нужно действие, которое будет подсчитывать количество загруженных кадров, когда закончится воспроизведение 1-го кадра. Если это количество меньше 30, то действие во 2-м кадре должно перевести воспроизведение к 1-му кадру. Если все кадры загружены, то 2-й кадр пропускается и ролик воспроизводится до конца.

Из этого следует, что 3-й кадр – особенный. Никогда не следует в программах переводить воспроизведение к кадру с указанным номером. Если вы вставите или удалите некоторые кадры, то программа после этого будет работать неправильно. На такой случай Flash позволяет вам именовать кадры, вставляя в них метки.

Ниже мы объясним, как вставить метку с именем Go в 3-й кадр ролика. В программе вы будете ссылаться на кадр Go, а не на 3-й кадр. Таким образом, вы повышаете гибкость своей программы. Представьте себе, что вы добавили 10 кадров после 2-го. Понятно, что теперь то, что раньше было в 3-м кадре, окажется в 11-м. Если ваша программа ссылается на номера кадров, то вам нужно просмотреть всю программу и заменить все ссылки на 3-й кадр. В сложных проектах это может оказаться серьезной проблемой. Если программа ссылается на метку, вам нужно просто перенести метку в 11-й кадр.

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

  1. Щелкните на 3-м кадре слоя Label и вставьте ключевой кадр. Метку можно вставлять только в ключевой кадр.
  2. Щелкните в поле ввода под словом Frame в окне свойств и введите Go. Нажмите клавишу Enter. В 3-м кадре появится флажок рядом со словом Go (рис. 15.15).

    Иллюстрированный самоучитель по Web-разработке на Macromedia Studio MX › Создание Web-страниц с помощью Flash › Создание загрузчика во Flash MX
    Рис. 15.15. Метка добавлена в 3-й кадр слоя Label

  3. Добавьте ключевой кадр в 1-й кадр слоя Action и щелкните правой кнопкой мыши на нем. В открывшемся контекстном меню выберите пункт Actions, и отобразится панель Actions. Выберите режим Expert Mode, чтобы открыть окно Actionscript Editor. В этом режиме вы можете вводить текст программы непосредственно в окно. Щелкните на пустом месте окна и введите следующий текст:
    if (framesloaded <= totalframes) {
        GotoAndPlay("Go");
    }

    В первой строке проверяется, равно ли число загруженных кадров frames loaded числу всех кадров ролика _total frames. Вторая строка выполняется, если выполнено условие первой строки. Если загружены все 30 кадров, то воспроизведение переходит к кадру с меткой Go. Все имена в языке Actionscript должны быть заключены в кавычки.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.