Опубликован: 04.11.2006 | Доступ: свободный | Студентов: 4458 / 498 | Оценка: 4.46 / 3.96 | Длительность: 39:17:00
Урок 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 и введите следующий скрипт:

Галина Кузнецова
Галина Кузнецова

Добрый день.

Можно ли получить среду Flash для обучения бесплатно?

Елена Маслова
Елена Маслова
Россия, Новокузнецк, Сибирский государственный индустриальный университет, 2010
Farxod Avloyev
Farxod Avloyev
Узбекистан, Qashqadaryo