Руководство по actionscript. часть 3, стр. 065
Загрузка XML-данных
Для наглядности в большинстве примеров этой главы ХМL-данные были записаны в виде литералов. Однако в реальных приложениях они зачастую загружаются из внешнего источника.
Для загрузки ХМL-данных из внешнего источника в экземпляр класса XML используйте такую последовательность действий.
1. Создайте объект URLRequest, описав местоположение внешних данных XML (это может быть либо файл, либо серверный сценарий, возвращающий данные в формате XML).
2. Создайте объект URLLoader и используйте его метод load ( ) для загрузки данных XML.
3. Подождите, пока загрузятся данные XML.
4. Передайте загруженные данные XML в конструктор нового экземпляра класса XML.
Хотя подробное рассмотрение классов URLRequest и URLLoader выходит за рамки этой главы, в листинге 18.13 представлен код, необходимый для загрузки XML-данных в экземпляр класса XML. Используемый в примере класс XMLLoader расширяет класс Sprite, чтобы его можно было откомпилировать в качестве основного класса приложения для тестирования. Информацию о классах URLRequest и URLLoader можно найти в справочнике по языку ActionScript корпорации Adobe. Информацию об обработке событий можно получить в гл. 12.
Листинг 18.13. Загрузка данных XML из внешнего источника
package { import flash. display.*; import flash. events.*; import flash. net.*;
// Демонстрирует код, необходимый для загрузки XML-данных
// из внешнего источника
public class XMLLoader extends Sprite {
// Переменная, которой будут присвоены загруженные XML-данные
private var novel:XML;
// Объект, используемый для загрузки XML-данных private var urlLoader:URLLoader;
// Конструктор
public function XMLLoader ( ) { // Указываем местоположение внешнего источника XML-данных var urlRequest:URLRequest = new URLRequest(«novel. xml»); // Создаем объект, который умеет загружать внешние текстовые данные urlLoader = new URLLoader( );
// Регистрируем обработчик, чтобы получить событие об окончании // загрузки XML-данных
urlLoader. addEventLi stener(Event. COMPLETE, completeLi stener); // Загружаем XML-данные urlLoader.1oad(ur1 Request);
}
// Метод, вызываемый автоматически по окончании загрузки XML-данных
private function completeListener(e:Event):void { // Строка, содержащая загруженные XML-данные, присваивается переменной // data объекта URLLoader (то есть urlLoader. data). Чтобы создать // новый экземпляр класса XML из этой загруженной строки, мы передаем // ее в конструктор класса XML novel = new XML(urlLoader. data);
trace(novel. toXMLString( )); // Отображаем загруженные XML-данные,
// преобразованные в объект XML
Обратите внимание, что все операции загрузки данных в языке ActionScript, включая операцию, представленную в листинге 18.13, попадают под действие ограничений безопасности приложения Flash Player. Полную информацию об ограничениях безопасности можно найти в гл. 19.