![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
|
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
Цитата:
import mx.events.EventDispatcher;
import mx.utils.Delegate;
class ChannelsDAO
{
private var _xml:XML;
public var addEventListener:Function;
public var removeEventListener:Function;
private var dispatchEvent:Function;
public function ChannelsDAO()
{
EventDispatcher.initialize(this);
}
public function getChannels():Void
{
this._xml = new XML();
this._xml.ignoreWhite = true;
this._xml.onLoad = Delegate.create(this, this.onLoad);
this._xml.load("channels.xml");
}
private function onLoad(success:Boolean)
{
if(success)
{
var result:Array = this.getChannelsFromXML();
//вещаем событие.
//result - полученных данные.
this.dispatchEvent({type:"onResult", result: result})
}else
{
this.dispatchEvent({type:"onFault"})
}
}
private function getChannelsFromXML():Array
{
var channels:Array = []
//здесь извлекаем данные из загруженного xml-документа.
return channels;
}
}
import mx.utils.Delegate;
class ChannelsDAOTest
{
private var _model:Model;
private var _dao:ChannelsDAO;
public function ChannelsDAOTest()
{
}
public function run():Void
{
this._model = new Model();
this._dao = new ChannelsDAO();
this._dao.getChannels();
this._dao.addEventListener("onResult", Delegate.create(this, this.resultHandler));
}
private function resultHandler(event:Object):Void
{
this._model.channels = event.result;
}
}
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
В классе:
import mx.events.EventDispatcher;
//
class SubClass extends XML {
/*
*/
private var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;
/*
*/
public function SubClass() {
super();
this.ignoreWhite = true;
EventDispatcher.initialize(this);
}
/*
*/
public function onLoad(success:Boolean):Void {
if (success) {
var eventObject:Object = {type:"onEvent", target:this};
dispatchEvent(eventObject);
}
}
}
Последний раз редактировалось udaaff; 01.09.2007 в 10:09. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 20
|
lowka
Спасибо за код! Понял, что просто в голове не могу привыкнуть к асинхронности. Ну вроде уже привык )). |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Привыкать придется.
lowka, зря ты туда ещё и модель запихнул. Щас вопросов миллион будет. Рано ещё. ![]() |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 20
|
почему не работает вот так:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это связано с изменением области видимости при такой записи. Delegate исправляет эту проблему.
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 20
|
а в какой области видимости мы находимся?
this куда ссылается? насчёт модели угадал ) где можно про неё почитать? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
this ссылается на XML, а не на класс.
Модель lowka воткнул, как заготовку для реализации паттерна MVC. А оно в данном случае вообще не нужно и лишнее. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 20
|
не понял:
слева от знака равенства "this" ссылается на экземпляр класса, правильно? а справа уже нет? |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|