Опубликован: 04.11.2006 | Уровень: специалист | Доступ: платный
Урок 11:

Организация ввода и вывода данных во Flash

< Урок 10 || Урок 11: 12345 || Урок 12 >
Аннотация: Одна из важнейших способностей Flash – возможность обмениваться данными с внешними источниками. Эта способность делает Flash настоящим средством для разработки приложений, позволяя динамически загружать новые данные, сохранять данные (регистрировать пользователей и т.п.), строить программы диалогового взаимодействия пользователей (чаты и т.д.).
Ключевые слова: flash, обмен данными, сохранение данных, объект, место, файл, имя переменной, массивы объектов, XML, cookie, CFM, CGI, JSP, news, сокет, создание файла, функция, COM, сервер, значение, URL, автор, адрес, Registered, email, описание переменной, сохранность данных, скрипт, загрузка переменных, имя объекта, send, синтаксис, %contenttype, загрузка данных, undefined, ПО, строка данных, mx/s, ASP, polling, MDB, CD-ROM, доступ, Windows, кадр, свободное пространство, submit, пространство, пользователь, курсор, waiting, radio button, property, список, initializer, State, опция, имя группы, селективность, radiogroup, Data, placement, change, handler, меню, control, live preview, переменная, байт, локальная переменная, choice, выражение, значение переменной, аргумент, процент, поле, BAR, метка, тело цикла, конкатенация, цикла, ссылка, e-vote, percent, rounding, автоматизация, приложение, диск, application, ActionScript, UserName, массив, элемент данных, информация, flush, macintosh, путь, player, local storage, FLA, запись, NEXT, new, save, journal, единица, вызов функции, длина, индекс, тело функции

В этом уроке мы покажем вам различные способы общения Flash с внешними источниками (получения и передачи данных). Затем вы сможете воспользоваться полученными знаниями при построении несложного Flash-приложения, которое даст пользователям возможность "голосовать" за фильм, причем результаты голосования будут отображаться на экране, и все полученные сообщения будут сохраняться в журнале на вашем жестком диске.

Внимание! Для работы этим уроком необходимы учебные файлы, которые Вы можете загрузить здесь.

Что будет изучаться

В этом уроке:

  • Форматы данных, которые может воспринимать Flash
  • Объекты, предназначенные для обмена данными
  • Обмен данными с сервером
  • Сохранение данных на жестком диске при помощи общих объектов

Приложение-журнал (мы создадим его в этом уроке) позволит добавлять новые записи, просматривать предыдущие и сохранять их.

Время выполнения

На выполнение этого урока требуется примерно один час.

Файлы урока

Файлы-носители:

Lesson11/Assets/poll.asp
Lesson11/Assets/poll.mdb

Стартовые файлы:

Lesson11/Assets/poll1.fla
Lesson11/Assets/journal1.fla

Законченные проекты:

poll2.fla
journal2.fla

Бонус:

Lesson11/Bonus/highscoreList.fla

Источники данных и форматы

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

Любые данные, которые вы собираетесь загружать во Flash из внешнего источника, должны быть определенным образом структурированы – иметь определенный формат. Flash поддерживает следующие форматы:

  • Строка URL. В этом формате данные представлены в виде пар имязначение. Переменные и их значения описываются текстовой строкой. Например, текстовая строка name=Jobe&website=http://www.electrotank.com&hairColor=brown описывает три переменные ( name, website, hairColor ) с соответствующими им значениями ( Jobe, http://www.electrotank.com, brown ). После загрузки этой строки Flash автоматически разделит ее на пары имя-значение, и эти переменные можно будет использовать так же, как переменные, запрограммированные в фильме. Здесь, как видите, знак равенства связывает имя переменной с ее значением, а знак амперсанд ( & ) указывает конец описания одной переменной и начало следующей. Число переменных, описываемых в таком формате, неограниченно. Учтите, однако, что в таком формате можно хранить лишь простые переменные, для хранения данных в виде массивов, объектов и т.п. такой формат не годится.
  • XML. Этот популярный стандарт форматирования позволяет хранить данные в структурированном виде. Например:
<States>
  <State>
    <Name>North Carolina</Name>
    <Capital>Raleigh</Capital>
  </State>
  <State>
    <Name>Virginia</Name>
    <Capital>Richmond</Capital>
  </Sate>
</States>

После загрузки документа XML во Flash данные из него извлекаются скриптом (который вы сами должны написать).

Примечание Подробнее о формате XML смотри Урок 12 – Применение XML во Flash.

  • Общие объекты. В этом уроке мы расскажем о них подробнее; пока достаточно сказать, что общие объекты в чем-то сродни cookies: это объекты (данные), которые хранятся локально, на жестком диске пользователя. Что это означает? Пользователь запустил и просмотрел фильм (по сети либо в виде проектора). В ходе воспроизведения фильма формируются и сохраняются некие данные (имя пользователя, последний посещенный им раздел и т.п.). Впоследствии эти данные могут быть получены, когда пользователь вновь запустит фильм на том же компьютере. С помощью общих объектов можно хранить не только переменные, но данные любого типа – массивы, XML-объекты, любые другие объекты. Сохранение данных можно сделать "невидимым" для пользователя либо предоставить ему возможность самостоятельно инициировать этот процесс (с помощью кнопки и т.п.). На одном компьютере можно поместить несколько файлов с данными общих объектов – каждый фильм обычно (хотя и не обязательно) создает собственный файл.

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

  • Текстовый файл. Flash может загружать данные из текстовых файлов (*.txt), содержащих данные в описанном выше формате строки URL. Данные из текстовых файлов загружаются с помощью методов loadVariables() или load() объекта LoadVars. В этом уроке мы с вами применим оба эти метода. Создать такой источник данных можно с помощью любого простейшего текстового редактора, вроде Windows Notepad или Apple SimpleText.
  • Серверные скрипты. Это скрипты, размещаемые на страницах типа ASP, CFM, CGI или JSP и выполняемые сервером. Эти страницы, будучи невидимыми пользователю, генерируют форматированные данные (в виде HTML, XML и т.д.) и пересылают их по запросу. Например, представьте себе страницу под названием news.asp, которая не имеет визуального содержания, а содержит только выполняемый сервером скрипт. При посещении пользователем этой страницы скрипт динамически сформирует и передаст на его браузер HTML-страницу, содержащую последние новости (взятые, например, из базы данных). Серверные скрипты могут возвращать данные и в формате XML, и в виде URL-строки – а это значит, что Flash, взаимодействуя со страницей, содержащей такой скрипт, может загружать данные, созданные динамически, "на лету".

  • Файлы XML. Файлы XML – это обычные текстовые файлы, содержащие данные в формате XML; такие файлы обычно имеют расширение *.xml.
  • XML socket. Сокет-серверы – это приложения, выполняемые на сервере и обслуживающие одновременно нескольких пользователей, соединяя их друг с другом. Flash способен передавать и получать информацию через сокет, используя формат XML. О сокет-серверах и о том, как строить приложения с их применением, вы сможете узнать в Уроке 12.
  • Общие объекты. Как уже говорилось, общие объекты применяются для создания файлов данных, хранящихся на жестком диске пользователя. Эти данные можно затем получить и использовать в фильме (этому посвящено последнее упражнение данного урока).

Совет. Во Flash встроена функция защиты, запрещающая загрузку данных через домены. Например, если фильм был загружен с www.site1.com, то попытка загрузить данные с www.site2.com не удастся.

Get и post

При работе с серверными скриптами существует два способа обмена данными между сервером и Flash: посредством GET или POST. Оба они используются, как в обычных HTML-страницах, так и во Flash, для передачи данных (переменных и их значений), введенных в форму, на сервер для обработки (специальные методы Flash для передачи данных мы обсудим в следующих упражнениях).

При посылке переменных с помощью GET пары имя/значение просто присоединяются к самой адресной строке URL. Например, если я (автор этой книги) желаю с помощью GET послать свое имя и адрес электронной почты скрипту, расположенному на странице register.asp, я указываю URL так: http://www.somedomain.com/register.asp?name=jobe&email=jobe@electrotank.com. Знак вопроса говорит скрипту и серверу, что все последующее есть описание переменных. Хотя GET проще в использовании, чем POST, он годится не во всех ситуациях, поскольку ограничен размером в 1024 символа.

Теперь посмотрим, как применяется POST. При передаче данных с помощью POST, переменные и значения содержатся внутри заголовка HTTP-запроса – то есть невидимы для пользователя. POST немного более удобный способ передачи, поскольку не ограничен числом символов.


Мы вернемся к теме применения GET и POST в упражнении к следующему разделу – "Применение объекта LoadVars".

Совет. Поскольку совместить GET и POST не всегда легко, скрипты обычно пишутся так, что они способны принимать либо GET, либо POST, но не то и другое

< Урок 10 || Урок 11: 12345 || Урок 12 >
Салтанат Бектегенова
Салтанат Бектегенова

Дострочное пересдача экзамена

 

Евгений Стародубцев
Евгений Стародубцев

Вот задание:

7. Открыв панель Действия (Actions) и установив ее в Экспертный режим(Expert Mode), выделите кадр 1 слоя Actions и введите следующий скрипт:

Евгения Дегтяренко
Евгения Дегтяренко
Украина, Запорожье
Анна Елисеева
Анна Елисеева
Россия, Великий Новгород, Ногородский государственный университет имени Ярослава Мудрого, 2003