Этот выпуск открывает новую серию, посвященную практическому использованию Flash при создании собственного сайта. Это не означает, что мы будем топтаться на месте и станем применять, только уже известные нам приемы и команды. Наоборот, мы продолжим изучение ActionScript на примерах, которые Вы сможете, включить в своих работы.
От чего больше всего устают во время работы? Нет! Не от самой работы :-) От однотипных и монотонных действий. Компьютер не человек и мы не услы-шим, как он жалуется на свою судьбу, выполняя длиннющие скрипты одинако-вых действий, но давайте создадим "комфортные" условия труда для этой тру-долюбивой железки и впоследствии, нам самим будет проще вносить измене-ния в проекты. Если необходимо выполнить определенные одинаковые дейст-вия с большим количеством объектов, то нет необходимости записывать их от-дельно для каждого объекта, достаточно применить цикл.
Цикл - Loop While Команда Loop While выполняет последовательность входящих в нее действий, только в случае, если заданное для проверки условие верно.
Рассмотрим конкретный пример: Set Variable: "cikl" = 0 Loop While (cikl <>
В результате, увеличение переменной "cikl" будет продолжаться до тех пор, пока ее значение меньше 5. Когда нам необходимо выполнить ряд одно-типных операций, данное действие просто незаменимо, еще одним его пре-имуществом является скорость выполнения, она не зависит от установленного значения Frame Rate (скорость показа фильма задается в Modify/Movie) в ин-тернет обычно говорят - "значение FPS".
Давайте научимся использовать циклы в своей работе. Предположим, что в вашем фильме должна быть сцена со звездным небом. Применив простейший цикл с изученным в 19 выпуске, дублированием, Вы можете расположить слу-чайным образом, необходимое количество звездочек на небосводе, и самое за-мечательное, что каждый раз созвездия будут другими. Кроме того, значитель-но сократится объем самого фильма, а для интернета это имеет очень большое значение. Нам понадобится символ звездочки на сцене и всего один кадр. Я не стану приводить полный код скрипта (что может быть приятнее, чем самостоя-тельно написанная программа?), а только дам несколько рекомендаций: Перед циклом задайте начальное значение счетчика, которое впоследствии, Вы смо-жете использовать для создания новых имен символов при дублировании, ука-зании необходимого уровня размещения (помните про стремление к наиболь-шей оптимизации скрипта). Для случайного определения положения звезды применяйте "Random" Чтобы придать звездному небу более реальный вид до-бавьте установку прозрачности "Alpha" Не забудьте изменять значение счетчи-ка, иначе Ваш цикл никогда не будет завершен и фильм просто остановиться.
Рассмотрим реальную ситуацию: Вы в поле лица трудились, аж целых два дня, создавали свой шедевр, который, несомненно, заставит ваших конкурентов лопнуть от зависти, импортировали все красивые картинки, которые были в на-личии и ко всей этой радости записали голосовой комментарий. Получилось несколько тяжеловато (мегобайта 2-3), ну да это ерунда, зато круто! Закачали свое чудо на любимый сайт и решили посмотреть, как все это "идет"… а "идет" плохо, кадры загружаются рывками, прорисовка странная и голос обрывается, но самое досадное, куда-то пропала вся крутость. Я сейчас не буду рассуждать о целесообразности импортированной графики или советовать использовать потоковый звук, все это будет позже. Реально оценить, как будет загружаться Ваш фильм, можно и без подключения в интернет.
Тестирование скорости загрузки: Во время обычного тестового просмотра Control/Test Movie откройте меню "Control", установите скорость загрузки, на-пример - 14,4 (1,2 Kb/s) и выберите Show Streaming. Фильм начнет проигры-ваться с самого начала и эмулировать загрузку с выбранной скоростью. Вы мо-жете получить множество полезной информации о времени загрузки кадров, их объеме, если включите окно информации - View/Bandwidth Profiler.
Вы, несомненно, не раз видели сайты, на которых процесс загрузки сопро-вождается выводом информации о загруженном объеме. Это так называемые предзагрузчики. Они просто незаменимы при размещении своих работ в интер-нет. Имеет смысл использовать предзагрузчики во всех случаях, когда объем swf файла более 10-15 кб.
Предзагрузчик: Какие данные нам нужны для определения загруженного объема фильма? Разумеется, мы должны знать, сколько кадров всего в фильме. Можно указать это вручную, но ведь мы хотим создать универсальный загруз-чик, который будет работать независимо от того в каком проекте, мы станем его использовать, в этом нам поможет параметр "_totalframes". А еще нам нуж-но знать, сколько кадров загружено на данный момент "_framesloaded". Этих двух параметров достаточно для вычисления загрузки в процентах, как это принято в интернет. Загрузчик должен состоять, хотя бы из двух кадров, в пер-вом будет вычисляться необходимое нам значение, а во втором производиться проверка на полную загрузку, и если фильм загружен начать его показ.
В первом кадре вставим следующий скрипт: Set Variable: "load" = Int ( _framesloaded / _totalframes * 100)
Т.е. присваиваем переменной "load" значение загруженного фильма в про-центах. Для этого разделим количество уже загруженных кадров на их общее количество и умножим на сто. Но, полученное значение желательно округлить (не будем же мы утомлять зрителя докладами о тысячных процентах загрузки :), для округления служит функция "Int", которая просто отбрасывает все циф-ры после запятой.
Во втором кадре поместим проверку и вывод информации: Set Variable: "showtext" = load & "%" If (load < 100) Go to and Play (1) End If
В первой строке выводится информация о загрузки в процентах, для этого необходимо, что бы на сцене было текстовое поле с именем "showtext". Далее идет проверка на полную загрузку и если загружено менее 100% то переходим на первый кадр, для получения нового значения.
Это типичный вариант предзагрузчика, но далеко не единственный. Если проект более 500 Кб, то смотреть на медленно ползущие проценты, не доставит большого эстетического удовольствия. В этом случае, гораздо привлекательнее использование пошаговой загрузки, т.е проверить загруженность первой, не-большой части фильма, начать его показ и пока идет проигрывание данной сце-ны броузер продолжит загрузку, по окончании сцены проверяется загрузка сле-дующей, если еще не загружено, то попросить подождать. В этом случае необ-ходимо рассчитать возможное время загрузки и проигрывания сцен. Для реаль-ной проверки, используйте тестирование с разными значениями скорости за-грузки. Для пошагового предзагрузчика, конечно можно использовать описан-ный выше метод вычисления загрузки, но эффективнее, особенно если у Вас фильм состоит из нескольких сцен, делать проверку на загрузку определенного (конечного) кадра.
Проверка загруженного кадра - If Frame Is Loaded (FrameNumber) Это уже знакомый Вам условный оператор "If", но в данном случае в качестве условия проверки, служит указание конкретного кадра "FrameNumber". Рассмотрим его параметры: Выпадающее меню "Scene" - сцена в которой мы будем делать про-верку, по умолчанию стоит значение
Предположим, данный скрипт находится на сцене "Scene 1" в конечном, 30-ом кадре. После того, как закончится проигрывание первого эпизода, т.е. фильм дойдет до 30-го кадра первой сцены, произойдет проверка - "а не загру-зилась ли вторая сцена?". Если нет, то фильм перейдет на 25-й кадр текущей сцены и после того, как условие станет истинным, т.е. вторая сцена будет за-гружена, произойдет ее запуск.
Пошаговые загрузчики, можно применять, как для маленьких проектов. Например, Вы создали меню для сайта и хотите, чтобы зритель не видел, как оно прорисовывается, а появлялась уже нарисованная картинка. Так и для очень больших проектов, каждая часть которых длится долго сама по себе (пре-зентации, мультфильмы и т.д.) и возможна загрузка следующей сцены во время проигрывания текущей.
Домашнее задание: Как обычно будем придерживаться темы текущего но-мера. На этот раз мы изучили предзагрузчики. Кроме вывода процентной ин-формации, обычно предзагрузчик содержит небольшой клип оживляющий вре-мя ожидания. Ваша задача создать заставку для предзагрузчика. Основные тре-бования: небольшой объем, оригинальный подход (песочные часы, термометры и летящие в папку бумажки не принимаются), возможна привязка к загружен-ному объему.
Комментариев нет:
Отправить комментарий