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

Применение XML во Flash

< Урок 11 || Урок 12: 1234567 || Урок 13 >

Использование объекта xml

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

Форматирование XML

Объект XML имеет набор методов, предназначенных для создания и форматирования XML-документов. Правда, они весьма не просты в использовании – однако существует и более простой способ форматирования XML-объектов: нужно создать строку и затем преобразовать ее в объект XML.

Во Flash объект XML создается при помощи конструктора. Вот пример создания пустого объекта XML:

myXML = new XML();

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

Предположим, что мы хотим создать во Flash такой XML-документ:

<MyFriends>
  <Name Gender="female">Kelly Makar</Name>
  <Name Gender="male">Free Makar</Name>
</MyFriends>

Для этого мы должны сделать две вещи:

  1. Создать документ в виде текстовой строки.
  2. Преобразовать эту строку в объект XML при помощи конструктора объекта XML – new XML().

Например, так:

myString = "<MyFriends><Name Gender=\"female"\>Kelly Makar</Name><Name 
  Gender=\"male"\>Free Makar</Name></MyFriends>";
myXML = new XML(myString);

Как видите, в этом скрипте текст XML-документа создается в виде строки, которая затем преобразовывается в настоящий объект XML под названием myXML. Затем этот объект можно послать для обработки на сервер, воспользовавшись одним из предназначенных для этого методов (которые мы опишем далее в этом разделе).

Анализ XML

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

firstChild: Это свойство указывает на первый узел внутри структуры. Например: myXML.firstChild.firstChild возвратит значение <Name Gender="female">Kelly Makar</Name>. Первый дочерний узел XML-документа есть корневой узел ( MyFriends ), а первый дочерний узел корневого узла – Name.

childNodes: Это свойство возвращает массив дочерних узлов данной точки структуры. Например: myArray = myXML.firstChild.childNodes. Массив myArray будет содержать два элемента, значения которых будут равны значениям двух узлов Name.

nextSibling: Это свойство указывает на следующий узел того же уровня в структуре. Например, myXML.firstChild.firstChild.nextSibling возвратит <Name Gender="male">Free Makar</Name>.

attributes: Это свойство возвращает ассоциативный массив имен атрибутов. Например: myXML.firstChild.firstChild.nextSibling.attributes.Gender возвратит значение "male".


Мы рассказали здесь лишь о наиболее употребительных свойствах объекта XML; прочие свойства работают похожим образом, указывая на различные части структуры документа.

Загрузка XML

Обычно работа с XML во Flash заключается в загрузке документа из внешнего источника или отсылке куда-либо. Чтобы загрузить XML из внешнего источника, необходимо сделать следующее:

  1. Создать объект XML.
  2. C помощью метода load() объекта XML загрузить данные в XML-формате из внешнего источника.

Например:

myXML = new XML();
myXML.load("http://somedomain.com/info.xml");

В данном случает документ загружается из статичного XML-файла, однако это не единственный путь. Можно указать ASP-страницу (или другую страницу сценария), результатом выполнения скрипта которой станет XML-документ.

Как узнать, что загрузка XML из источника в объект XML завершилась? Очень просто – с помощью события onLoad объекта XML. Можно использовать обработчик этого события для вызова функции, которую необходимо выполнить по окончании загрузки. Возьмем такой пример:

function init () {
  //здесь могут быть действия, анализирующие документ
}
myXML = new XML();
myXML.onLoad = init;
myXML.load("http://somedomain.com/info.xml");

Как указывает вторая снизу строка, по завершении загрузки документа XML должна быть вызвана функция init.

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

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

 

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

Вот задание:

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

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