Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложное взаимодействие классов 
V
    Опции темы
VingradFan
Дата 6.7.2011, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: 1
Всего: 3



Всем привет! Подскажите пожалуйста наиболее простое решение. Спасибо

Здравствуйте. Ситуация такова:

Класс А:
- имеет метод С получающий URL файла в кач-ве параметра
- метод С начинает загружать файл и добавляет загрузчику слушателя Д, который запускается как только файл загружен
- слушатель Д парсит файл, как только он загружен


Класс Б:
- создает экз. класса А
- вызывает метод С, передает ему УРЛ файла



Вопрос: как мне в классе Б получить результат парсинга?
Прошу прощение за абстрактное описание проблемы, если ничего не понятно, я попробуй переформулировать.
Благодарю за помощь!


Класс А:
Код

package tools{
    import flash.net.URLRequest;
    import flash.net.URLLoader;
    import flash.events.Event;
    public class XmlToArr {

        private var playlistXml:XML;
        private var xmlUrlRequest:URLRequest;
        private var xmlUrlLoader:URLLoader;
        public function XmlToArr (xmlUrl:String) {
        }

        public function Convert (xmlUrl:String) {
            this.xmlUrlRequest = new URLRequest(xmlUrl);
            this.xmlUrlLoader = new URLLoader(this.xmlUrlRequest);
            this.xmlUrlLoader.addEventListener (Event.COMPLETE,listenerComplete);
        }

        private function listenerComplete (event:Event) {
            this.playlistXml = new XML(this.xmlUrlLoader);
        }
    }
}




Класс Б:
Код

package player{
    import tools.XmlToArr;
    import flash.display.MovieClip;

    public class Playlist extends MovieClip {
        private var playlistUrl:XML;
        public var playlistArr:Array;

        public function Playlist (playlistUrl:String):void {
            var newXmlToArr:XmlToArr = new XmlToArr(playlistUrl);
            newXmlToArr.Convert(playlistUrl);
        }
    }
}



--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
SoWa
Дата 6.7.2011, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 1
Всего: 74



Очень и очень просто smile
Наследуй класс А от EventDispatcher, в слушателе-парсере в конце подпиши так: 
Код

this.playlistXml = new XML(this.xmlUrlLoader);
this.dispatchEvent(new Event("MyCompleteEvent"));

А в классе В вставь строчку
Код

var newXmlToArr:XmlToArr = new XmlToArr(playlistUrl);
newXmlToArr.addEventListener("MyCompleteEvent", classAHandler);
newXmlToArr.Convert(playlistUrl);

и напиши обработчик.

Это сообщение отредактировал(а) SoWa - 6.7.2011, 10:54


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
VingradFan
Дата 6.7.2011, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: 1
Всего: 3



SoWa, спасибо большое!
Вроде, разобрался.



--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.