Дострочное пересдача экзамена
|
Применение XML во Flash
По существу, стандартизация дает возможность взаимодействовать между собой разнородным предметам – фонарику и батарейкам, Macromedia Flash и серверу многопользовательской игры, и так далее. Также и во Всемирной сети, где каждую секунду перемещаются огромные объемы данных, чрезвычайно важно стандартизировать способы обмена данными между системами. Мощный и простой в использовании XML очень быстро становится таким общепринятым стандартом.
В этом уроке мы познакомим вас с основами формата XML, а также покажем, как можно использовать во Flash объекты XML и XMLSocket. К концу урока вы научитесь организовывать "общение" Flash с ASP-страницами для регистрации входа пользователей; также мы с вами создадим простой чат, работающий в реальном времени с использованием сокет-сервера.
Что будет изучаться
В этом уроке:
- Формат XML
- Отсылка XML-данных на сервер и загрузка их с сервера
- Создание нового объекта XML
- Применение методов, свойств и событий объекта XML
- Организация соединения с сокет-сервером при помощи Flash
Несложное чат-приложение, которое мы запрограммируем в этом уроке, будет использовать соединение типа XML socket.
Время выполнения
На выполнение этого урока требуется примерно полтора часа.
Файлы урока
Файлы-носители:
Нет
Стартовые файлы:
Lesson12/Assets/LoginRegister1.fla Lesson12/Assets/Chat1.fla
Законченные проекты:
LoginRegister2.fla Chat2.fla
Основы xml
Хотя само название XML, или eXtensible Markup Language, звучит несколько таинственно, понять и освоить этот язык совсем несложно. В сущности, XML есть способ форматирования и структурирования информации, которую приложения-получатели могут интерпретировать и использовать. На самом деле все мы, быть может, сами о том не подозревая, имеем большой опыт структурирования и организации информации. Возьмем такой пример.
Когда вы хотите написать другу письмо, вы должны структурировать свои мысли (информацию) в таком формате, который ваш друг сможет распознать. Итак, вы начинаете писать слова на листе бумаги, начиная с левого верхнего угла и разделяя свои мысли на абзацы, предложения и слова. Конечно, вы могли бы писать не слева направо, а как-нибудь по кругу, или вообще попытаться передать свои мысли картинками, однако такой способ, скорее всего, лишь приведет вашего друга в недоумение. А написав письмо в таком формате, который вашему другу привычен, вы сможете быть уверены в том, что ваше послание будет понято – то есть передача ваших мыслей (данных, информации) получателю письма совершится успешно.
Для того же предназначен и XML – это формат для передачи информации. Если, к примеру, нужно переслать данные из Flash на веб-сервер для обработки, следует сначала представить эти данные в формате XML. Тогда сервер сможет надлежащим образом интерпретировать эти данные и использовать их. Без этого сервер, получив несколько порций данных, не знал бы, что ему делать с первой порцией, что со второй, и какое вообще отношение имеет первая порция ко второй. Благодаря XML эти разрозненные части данных наполняются смыслом, и сервер может понять, как с ними работать.
В синтаксисе XML, подобно HTML, используются теги, атрибуты и значения – но на этом сходство и заканчивается. Тогда как в HTML используются заранее определенные теги (например, body, head или html ), в XML пользователь создает свои собственные, а не выбирает готовые имена из библиотеки. Давайте для начала рассмотрим вот этот простой документ XML:
<MyFriends> <Name Gender="female">Kelly Makar</Name> <Name Gender="male">Mike Grundvig</Name> <Name Gender="male">Free Makar</Name> </MyFriends>
Каждый тег XML называется узлом ( node ), набор данных в формате XML называется документом XML. В нашем документе-примере имеется корневой узел MyFriends и три дочерних узла. Каждый XML-документ может содержать только один корневой узел. Первый из дочерних узлов имеет имя узла Name и значение узла Kelly Makar. Слово Gender в каждом из дочерних узлов – атрибут. Атрибуты необязательны; каждый узел может иметь неограниченное число атрибутов. Обычно атрибуты используются для размещения небольших порций информации, которые необязательно отображать на экране (например, идентификационный номер пользователя).
Как вы видите в этом примере, теги (которые мы сами же создали и описали) придают смысл порциям информации (Kelly Makar, Mike Grundvig и Free Makar).
Следующий XML-документ являет более сложный пример структурирования.
<AddressBook> <Person> <Name>Kelly Makar</Name> <Street>121 Baker Street</Street> <City>Some City</City> <State>North Carolina</State> </Person> <Person> <Name>Tripp Carter</Name> <Street>777 Another Street</Street> <City>Elizabeth City</City> <State>North Carolina</State> </Person> </AddressBook>
В этом примере показано, как могут выглядеть данные адресной книги в формате XML. Если бы в нашей адресной книге числилось 600 человек, то узел Person повторялся бы 600 раз при той же самой структуре.
Каким же образом следует создавать свои узлы, свою структуру? Как объект-получатель (ASP-страница, сокет и т.п.) распознает форматирование документа? Ответ прост – средства для этого должны быть встроены в объект-получатель. Например, если мы создали адресную книгу во Flash и хотим поместить содержащуюся в ней информацию в базу данных, нам следует послать версию нашей книги в формате XML на ASP-страницу (или другую страницу сценария), которая сможет проанализировать информацию и разместить данные в соответствующих полях базы данных. Вы должны понимать, что этот скрипт ASP-страницы должен быть заранее разработан так, чтобы обработать данные должным образом. XML больше приспособлен для передачи информации, чем для хранения; поэтому данные нашей адресной книги удобнее хранить в записях базы данных, чем в виде XML-документа. Когда понадобится, информацию можно будет извлечь из базы данных, с помощью специального скрипта перевести в формат XML и переслать во Flash или другое приложение.
Иногда также используют текстовые файлы, содержащие информацию в формате XML – например, статичный XML-файл, хранящий информацию о том, какую ASP-страницу следует вызвать или какой порт и IP-адрес использовать для соединения с сокет-сервером.
Итак, с основами структуры XML вы ознакомились; теперь мы перечислим некоторые правила, которым необходимо следовать при составлении XML-документов.
- Не следует начинать имена узлов буквами XML; многие XML-анализаторы прерывают разбор документа, встретив такое сочетание символов.
- Каждый узел должен быть правильно завершен – например, для закрытия узла <Name> служит </Name>.
- Все служебные символы должны кодироваться в стандарте URL (во Flash это можно сделать с помощью функции escape() ). Многие анализаторы интерпретируют некоторые не кодированные служебные символы как начало нового узла – а потом не обнаруживают его завершения. Документ с незавершенными узлами не сможет пройти через XML-анализатор полностью. С атрибутами нужно быть еще внимательнее – здесь ошибку анализа могут вызвать даже такие символы, как перевод строки или амперсанд ( & ). Правильно кодируя текст по стандарту URL, вы избежите подобных проблем.
- Большинство XML-анализаторов учитывают регистр клавиатуры (различают прописные и строчные буквы). Это означает, что все соответствующие друг другу теги должны иметь одинаковое написание. Если узел был начат с <Name>, а завершился </name>, это приведет к ошибке.
- Корневой узел должен быть единственным.
Прежде чем приступить к работе, стоит, пожалуй, упомянуть еще об одном. Все это правильное и красивое оформление структуры XML-документа (каждый узел с новой строки, отступы для дочерних узлов и т.п.) совершенно необязательно. Все это просто облегчает чтение документа для нас. А для XML-анализаторов это просто пустое место; им все равно, есть эти отступы или нет их.