Дострочное пересдача экзамена
|
Применение XML во Flash
Использование объекта 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>
Для этого мы должны сделать две вещи:
- Создать документ в виде текстовой строки.
- Преобразовать эту строку в объект 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 из внешнего источника, необходимо сделать следующее:
- Создать объект XML.
- 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.