Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   XML парсер (http://www.flasher.ru/forum/showthread.php?t=133370)

vachtang83 03.12.2009 13:14

XML парсер
 
На сайте адобе наткнулся на вот такой код:

Код AS3:

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
 
        public class URLLoaderExample extends Sprite {
 
                /**
                * Link to XML file
                */

                private var xmlURL:String = "http://test.xml";
                /**
                * XML data
                */

                public var xmlData:XML;
 
                public function URLLoaderExample() {
            var loader:URLLoader = new URLLoader();
            configureListeners(loader);
 
            var request:URLRequest = new URLRequest(xmlURL);
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document.");
            }
        }
 
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }
 
        private function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
 
                        var vars:URLVariables = new URLVariables(loader.data);
            trace("The answer is " + vars.answer);
        }
 
        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }
 
        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }
 
        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
 
        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
    }
}

на timeline (Actions) прописываю код:

Код AS3:

var xmlLoader:URLLoaderExample = new URLLoaderExample;

хочется получить XML объект через этот класс, как поправильней это сделать?
изучаю AS3 и хочется всё сделать по правилам

За любую помощь буду очень благодарен

wvxvw 03.12.2009 13:32

На том же сайте есть ссылка рядом с каждым примером

How to use examples

vachtang83 03.12.2009 15:40

Цитата:

Сообщение от wvxvw (Сообщение 870019)
На том же сайте есть ссылка рядом с каждым примером

How to use examples

спасибо, может кто имеет свой парсер на AS3 былоб интересно проанализировать
структуру

Kuruki 03.12.2009 20:12

У Колина Мука в книге про AS3 есть глава о XML с примерами парсинга, рекомендую.

Hidest 04.12.2009 00:40

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

vachtang83 04.12.2009 11:10

я хочу с помощью этого класса получить XML в FLA файле, а потом передать xML другому классу, разбираюсь сейчас

в fla загружаю var xml:xmlLoader=new xmlLoader(); только думаю как потом из fla XML получить, не судите строго я новичок пока

Добавлено через 5 минут
Цитата:

Сообщение от Kuruki (Сообщение 870122)
У Колина Мука в книге про AS3 есть глава о XML с примерами парсинга, рекомендую.

благодарю

Добавлено через 4 часа 51 минуту
Доброе время суток

Поставил себе задачу 1) загрузить данные из XML 2) распарсить 3) полученые данные закинуть в фильм

Думаю сделать так:

Создаю 3 класса: xml loader, parser, загрузчик объектов в мувик

примерчик adobe xml loader:
Код AS3:

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
 
    public class URLLoaderExample extends Sprite {
        public function URLLoaderExample() {
            var loader:URLLoader = new URLLoader();
            configureListeners(loader);
 
            var request:URLRequest = new URLRequest("urlLoaderExample.txt");
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document.");
            }
        }
 
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }
 
        private function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
 
            var vars:URLVariables = new URLVariables(loader.data);
            trace("The answer is " + vars.answer);
        }
 
        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }
 
        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }
 
        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
 
        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
    }
}

далее в мувике прописал строчку:
Код AS3:

var xml:URLLoaderExample =new URLLoaderExample ();

тут всё ок, создаётся объект и вижу trace моего кода и т.д.

Собственно застрял вот на чём. Хочу из класса в мувике получить xml объект.

пробывал в классе объевлять
Код AS3:

 public var xmlData:XML;

потом прописывал в методе completeHandler
Код AS3:

xmlData = new XML(loader.data);

и из мувика пытаюсь получить: xml.xmlData

но не проходит, поправьте меня пожалуйста. Хочется грамотно всё сделать и по правилам


Часовой пояс GMT +4, время: 10:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.