![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Banned
Регистрация: Jan 2007
Сообщений: 40
|
Есть класс.
class classes.Company{ public var send_obj:LoadVars=null; public var rec_obj:LoadVars=null; public static var companyXML:XML = null; public function Company(){ send_obj = new LoadVars(); rec_obj = new LoadVars(); rec_obj.onData=function(text:String) { companyXML = new XML(text); } } public function viewAll():XML{ send_obj.select="select * from Company"; send_obj.pass=""; send_obj.sendAndLoad("xml.php", rec_obj, "GET"); return companyXML; } } |
|
|||||
|
надо onLoad вместо onData.
return тут не катит. Вернуть ваш метод может true, к примеру - типа запрос отправлен ждите ответа.А при сровабывании события onLoad нужно запускать функцию, которая будет обрабатывать ответ. Так как у вас, как я понял, несколько потомков класса, то callback функцию можно передавать как параметр метода viewAll + Цитата:
|
|
|||||
|
Banned
Регистрация: Jan 2007
Сообщений: 40
|
Почему надо onLoad и почему плохая идея с запросом не понял?
Класс, вызывающий viewAll Как и что надо поправить тут? |
|
|||||
|
ветеран форума
|
Примерно вот так, но код не тестировался, поэтому возможны глюки, но смысл уловить можно
![]() import mx.utils.Delegate; class classes.ViewInfo { public var company:classes.Company = null; public function ViewInfo():Void { company = new classes.Company(); company.viewAll(); company.onDataOK = Delegate.create(this, dataReady); } public function dataReady(companyXML:XML){ trace("companyXML: " + companyXML); } } import mx.utils.Delegate; class classes.Company { public var send_obj:LoadVars=null; public var rec_obj:LoadVars=null; public var companyXML:XML = null; public var onDataOK:Function; public function viewAll():Void { send_obj = new LoadVars(); rec_obj = new LoadVars(); send_obj.select="select * from Company"; send_obj.pass=""; rec_obj.onData = Delegate.create(this, onFinish); send_obj.sendAndLoad("xml.php", rec_obj, "GET"); } public function onFinish(sData:String):Void { companyXML = new XML; companyXML.parseXML(sData); companyXML.ignoreWhite = true; onDataOK(companyXML); } } Еще одно решение - задействовать класс mx.events.EventDispatcher, с помощью которого класс classes.Company будет генерировать событие о получении данных, в классе classes.ViewInfo организовать подписку на это событие, мой пример работает по примерно похожей схеме, но немного проще ![]()
__________________
trace("Остановите Землю, я сойду!!!"); Последний раз редактировалось Mur4ik; 17.11.2008 в 06:45. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|