Учебный курс Flash

Учебный курс
Примеры выполненных заданий
Подписка на рассылку
Форум
Чат
Скачать
Ресурсы, ссылки
Flash на практике
Translate into
RB2 Network

RB2 Network






выпуск 25

Flash на практике часть-6


    Путешествуя по Интернет мы крайне редко встречаемся с сайтами состоящими из одной страницы (файла). Обычно, обязательно присутствуют ссылки, ведущие на другие страницы того же сайта, т.е. информация поделена на небольшие части, каждая из которых либо посвящена определенной теме, либо является продолжением предыдущих частей. Как правило, с любой страницы сайта, можно попасть на любую другую страницу или в раздел (в случае с тематическим построением меню).

    По тому, как устроен сайт, можно легко определить личность его создателя. Структура сайта не отличается от файловой структуры компьютера и по сути это тоже самое. Если файлы разложены по своим папкам и четко структурированы, то найти нужный файл достаточно легко, чего не скажешь о большей части содержимого интернет.
    Порой зайдя на чей то сайт, вспоминаю, что в те далекие времена, когда я учился в школе мне мама не раз говорила:

- Что у человека на рабочем столе, то у него и в голове! И если на столе куча хлама и беспорядок, то и в мыслях полный бардак.

    Конечно, это несколько преувеличено, но почему-то, с тех пор я невольно стараюсь быть максимально аккуратным.
Впрочем я, кажется отвлекся и ушел от темы сегодняшнего выпуска. А, о чем я хотел вам рассказать? … Мммм… А! О загрузке информации. (Видимо, нужно навести порядок в своих дискетах :-)

    Обычно, любая дополнительная информация загружается отдельной страницей в том же окне броузера или в окне фрейма. Мне очень часто приходят письма, в которых встречается один и тот же вопрос
- Как, вставить страницу HTML в проект Flash.
Отвечаю - никак! Flash изначально создавался как броузенезависимый модуль, позволяющий отображать содержимое проекта одинаково вне зависимости от броузера, операционной системы, и компьютера. Если бы была возможность интегрировать окно броузера в сам Flash проект, то какому броузеру отдать предпочтение? Тут, вмешиваются вопросы бизнеса и межкорпоративной политики. Если создавать, собственное средство просмотра, то опять возникнут проблемы совместимости отображения информации. В пятой версии Flash сделана попытка конвертировать XML (не путать с HTML) непосредственно в проект, но это совсем другая тема для разговора.

    Пока же, эту проблему (вставки HTML во Flash) обходят следующим образом: создают сайт состоящий из фреймов, боковые части которого, содержат Flash, а основная - HTML страницу. Этот вариант подходит для сайтов содержащих большой объем текстовой информации или для модернизации старого сайта и упрощения управления (например, избавлении от JavaScript и как следствии простоты и надежности работы).
    Но уж если Вы решили создать, сайт целиком на Flash, то необходимо научится подгружать дополнительные проекты непосредственно в уже имеющийся.

Загрузка внешних данных:
    У нас есть возможность загрузить в работающий проект не только дополнительный файл формата swf, т.е по сути еще один проект, но и информацию из текстового файла или сгенерированную cgi. Причем в первых двух случаях, на не важно, позволяет ли сервер использовать собственные сценарии, главное, что бы он поддерживал корректную работу Flash (о необходимых требованиях к серверу читайте в 22 выпуске).

Загрузка данных из текстового файла
    Создайте основной проект, в котором будет редактируемое текстовое поле для отображения загружаемой информации и пара кнопок для управления загрузкой.

    Рассмотрим подробнее команду Load. Откройте окно свойств Instance Properties для выбранной кнопки или Frame Properties для кадра, как это сделать не раз описывалось в начальных выпусках ActonScript. Из списка возможных действий укажите Load/Unload Movie и установите необходимые параметры:
Action
  Load movie into location -загружает файл формата swf на определенный уровень или в указанный объект.
  Unload movie from location - удаляет загруженный ранее фильм с уровня или из объекта.
  Load variables into location - загружает данные, причем данные могут хранится не только в текстовом файле, но и генерироваться сценарием cgi.

    В поле URL указывается адрес, по которому находится swf, текстовый файл или сценарий cgi.

Location - здесь мы указываем "локацию", т.е. место назначение, куда будет загружена информация: либо уровень - Level, либо объект - Target.
    Мы с Вами уже знаем, что сцена может иметь несколько слоев, каждый из которых содержит объекты-символы, которые в свою очередь могут находится на разном уровне по отношению друг к другу, но есть еще один тип уровней - уровни фильма.

Уровни фильма
    Создавая проект, мы имеем дело с фильмом нулевого уровня. Когда загружаем внешний файл формата swf, то как бы кладем его над основным фильмом. Сколько дополнительных фильмов Вы загружаете, столько уровней нужно указывать. В том случае, если Вы укажите номер уже имеющегося уровня, то фильм находящийся в нем будет заменен на загружаемый. Фильм, загруженный на определенный уровень, полностью доступен для управления, только в данном случае, необходимо будет указывать не имя объекта, а уровень. Если Вы хотите управлять объектами загруженного фильма или его данными, то будет необходимо указывать полный путь к объекту или данным, но об этом мы поговорим в следующем выпуске.

    Но загружать фильмы можно не только на уровни, но и в объекты клипов, что обычно и делается. В этом случае указывается не номер уровня, а путь к имеющемуся объекту (см. ниже). При этом будут сохранены параметры объекта, т.е. размер, положение на сцене, угол поворота и степень прозрачности.

    И последний параметр Variables - переменные: предназначен для определения способа передачи данных.
Don't send - не отправлять.
Send using GET - отправить методом Get (добавляет данные в конец адреса URL, используется, как правило, для совместной работы со сценарием cgi).
Send using POST - отправить методом POST (удобен для отправки большого количества данных например, обработка почтовых форм).

    Итак, если мы загружаем данные из текстового файла, то пора создать этот файл, а точнее узнать в каком виде должны хранится данные.

Задание данных в текстовом файле
    На самом деле особых премудростей здесь нет. Достаточно указать имя переменной и ее значение, если переменных несколько, они разделяются знаком & (амперсанд).
Например:
part=Выпуск 25 учебного курса Flash&autor=Павел Г.Лапин
    вообще, согласно требованиям URLformencoded пробелы необходимо заменять на + или код %20, но как показывает практика работы с Flash, даже обычный текст обрабатывается вполне корректно (в том числе и переводы строк). Также обрабатываются коды ANSII если задавать их после % в шеснадцатиричном виде.

В том файле, который нам необходим для работы, укажем любой текст в качестве значения переменной tablo и сохраним под именем text1.txt. Теперь создайте проект с текстовым полем и кнопками.

    Предположим, что текстовому полю присвоено имя - "tablo", и при нажатии на первую кнопку в него будет загружена информация из файла text1.txt, тогда скрипт для первой кнопки будет:
On (Release)
    Load Variables ("text1.txt", 0)
End On


    Так как имя текстового поля и переменной в файле совпадают, то как только данные будут загружены они автоматически присвоятся данному текстовому полю.

    Для практического применения загрузки текстовых данных можно найти самое широкое и не только загрузка информации, но и создание различных сервисных приложений. Ярким примером совмещения загрузки текста и внешнего клипа, служит MbA модуль, еще одним применением является возможность создания информационных панелей с ежедневно обновляемым содержимым (Вам достаточно заменять только текстовый файл).

Загрузка клипов
    Теперь, после того как мы разобрались с текстами, давайте научимся загружать клипы.
    Конечно, можно загрузить фильм на определенный уровень, но в этом случае клип будет загружен в левый верхний угол и нам, нужно после загрузки заняться его позиционированием, что не совсем удобно, особенно если загружаемые клипы имеют один размер и должны заменять друг друга, а обычно именно так и происходит. Для этого необходимо, что бы у Вас был создан символ клипа, причем клип может содержать какое то начальное изображение или быть пустым, в последнем случае при помещении его на сцену установите необходимые размеры, задайте имя символа в Instance Properties (в нашем случае movie). Если имя загружаемого клипа будет, например, rings.swf то скрипт для кнопки вызывающей загрузку будет следующим:
On (Release)
    Load Movie ("rings.swf", "/movie")
End On


    Создав проект в котором используется загрузка данных или клипов, необходимо учесть, то что загрузка с интернет не происходит мгновенно и если текст достаточно большой или данных много и от них зависит дальнейший ход фильма, необходимо предусмотреть проверку их изменения, а в случае с загружаемым клипом предзагрузчик в самом клипе или контроль загрузки в проекте.

    Примеры загрузки можно скачать на сайте "Учебный курс Flash" в разделе "скачать". В качестве загружаемых клипов используются псевдообъемная анимация, о которой пойдет речь в серии выпусков посвященных реализации различных эффектов.


Домашнее задание
    Используя полученные знания создайте "Шкатулку Радости".
    Уточнения к заданию: проект должен использовать загрузку текстовых данных из нескольких текстовых файлов, содержащих приличные анекдоты, и загрузку нескольких карикатур (не менее приличных, чем анекдоты). Как вариант - озвученный комикс журнал, каждая из частей, которого загружается дополнительно в основной проект (проект в формате fla, подгружаемые части могут быть swf).
    Общий объем zip архива не более 300 кб. Работы принимаются до 4 ноября.


Павел Г.Лапин
E-mail: murmik@mail.ru
Россия Мурманск



Всплыть