Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KA-15-Lek-P.doc
Скачиваний:
2
Добавлен:
14.09.2019
Размер:
303.62 Кб
Скачать

Евсеев А.С. , Прибыткова Н.И.

Компьютерная анимация – раздаточный материал. КС и Т / ХНЭУ

Лекция № 15. Использование XML во Flash

Цель лекции: изучение формата XML; отсылка XML-данных на сервер и загрузка их с сервера; создание нового объекта XML; применение методов, свойств и событий объекта XML; организация соединения с сокет-сервером при помощи Flash.

Ключевые слова:

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

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

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

Несложное чат-приложение, будет использовать соединение типа XML socket.

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

Lesson12/Assets/LoginRegister1.fla

Lesson12/Assets/Chat1.fla

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

LoginRegister2.fla

Chat2.fla

§15.1. Основы xml

Хотя само название XML, или eXtensible (расширяемый) Markup Language, звучит несколько таинственно, понять и освоить этот язык совсем несложно. В сущности, XML есть способ форматирования и структурирования информации, которую приложения-получатели могут интерпретировать и использовать. Все мы, имеем большой опыт структурирования и организации информации.

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

Для того же предназначен и XML – это формат для передачи информации. Если, к примеру, нужно переслать данные из Flash на веб-сервер для обработки, следует сначала представить эти данные в формате XML. Тогда сервер сможет надлежащим образом интерпретировать эти данные и использовать их. Без этого сервер, получив несколько порций данных, не знал бы, что ему делать с первой порцией, что со второй, и какое вообще отношение имеет первая порция ко второй. Благодаря XML эти разрозненные части данных наполняются смыслом, и сервер может понять, как с ними работать.

В синтаксисе XML, подобно HTML, используются теги, атрибуты и значения – но на этом сходство и заканчивается. Тогда как в HTML используются заранее определенные теги (например, body, head или html), в XML пользователь создает свои собственные, а не выбирает готовые имена из библиотеки. Давайте для начала рассмотрим вот этот простой документ XML:

<MyFriend>

<Name Gender="female">Kelly Makar</Name>

<Name Gender="male">Mike Grundvig</Name>

<Name Gender="male">Free Makar</Name>

</MyFriend>

Каждый тег XML называется узлом (node), набор данных в формате XML называется документом XML. В нашем документе-примере имеется корневой узел MyFriend и три дочерних узла. Каждый 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-анализаторов это просто пустое место.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]