Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   область видимости при загрузке данных извне (http://www.flasher.ru/forum/showthread.php?t=115569)

Багратион 03.09.2008 17:55

область видимости при загрузке данных извне
 
Есть класс:
Код:

package {
       
        import flash.display.Sprite;
        import flash.events.*;
        import flash.net.*;
       
        public class getXML extends Sprite{
               
                public var xml:XML;
                public var loader:URLLoader;
               
                public function getXML(){
                                               
                        loader = new URLLoader ();
                        loader.addEventListener (Event.COMPLETE, loadXML);
                        loader.load (new URLRequest ("test.xml"));
                       
                        trace(xml); // Выводит NULL
                }
               
                public function loadXML (e:Event):void {
                        xml = new XML (loader.data);
                        trace(xml); // Выводит содержимое XML файла
                }
               
        }
}

собственно вопрос, как можно получить загруженные данные НЕ в обработчике события, а в любом другом методе ?

ramshteks 03.09.2008 17:57

так же как и в обработчике, только вызывать их надо после события комплит

Багратион 03.09.2008 18:02

Цитата:

Сообщение от ramshteks (Сообщение 762058)
так же как и в обработчике, только вызывать их надо после события комплит

А по-конкретнее можно ? Желательно с примерами :rolleyes:

Просто в дальнейшем, данные обрабатываются и потом должны быть переданы в другой класс, а я получается могу с этими данными работать только в пределах одного класса... вернее даже в пределах одного метода класса...

ramshteks 03.09.2008 18:13

эм кто сказал тебе сию глупость у тя все есть чтоб осуществить задуманное! подумай еще.

ладна.

Код:

package {
       
        import flash.display.Sprite;
        import flash.events.*;
        import flash.net.*;
       
        public class XMLLoader extends Sprite{ классы называют с большой буквы и вроде как мне известно существительными а не глаголами
               
                private var xml:XML;//инкапсуляция друг мой)
                private var loader:URLLoader;
               
                public function XMLLoader(){
                                               
                        loader = new URLLoader ();
                        loader.addEventListener (Event.COMPLETE, loadXML);
                        loader.load (new URLRequest ("test.xml"));
                       
                        trace(xml); // Выводит NULL - естестна!
                }
               
                private function loadXML (e:Event):void {
                        xml = new XML (e.data);
                                //барабанная дробь!
                                doSomething(xml)
                                var someObject:SomeClass=new SomeObject(xml)
                                //или
                                var someObject2:SomeClass=new SomeClass2()
                                someObject2.setXmlData(xml);
                        trace(xml); // Выводит содержимое XML файла
                }
                      private function doSomething(xmlData:XML):void{
                            trace(xmlData)    //O_o                 
                        }
               
        }
}



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

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