PDA

Просмотр полной версии : [AS 2.0] Событие onLoad, при вызове php скрипта.


Sneg
24.12.2005, 22:11
Добрый вечер, столнулся с небольшой проблемой. Понял, что не знаю как обратиться к объекту типа LoadVars, в событии onLoad для того чтобы получить те данные, которые мне пришли. И вынужден использовать onData таким образом.

var xml:XML=new XML();
xml.ignoreWhite=true;
var sender:LoadVars=new LoadVars();
var listener:LoadVars=new LoadVars();
sender.sendAndLoad(script_path,listener,"POST");

listener.onData=function(text:String){
xml.parseXML(text);
controller.parseXML(xml);
};

Вопрос, как обратиться к listener чтобы получить те данные которые он в себя записал? Вроде listener.someVar (где someVar какая-то переменная), скрипт возвращает к примеру echo "hello word".
Заранее спасибо Вам за ответы.

Ieshua
24.12.2005, 23:52
lv = new LoadVars();
lv.sendAndLoad('get.php', lv);
lv.onLoad = function(success) {
//данные загружены!
};

Sneg
25.12.2005, 00:27
lv = new LoadVars();
lv.sendAndLoad('get.php', lv);
lv.onLoad = function(success) {
//данные загружены!
};

Вопрос заключается не в этом, прочти еще раз пожалуйста то, что я написал выше. Как использовать метод onLoad я знаю, интересует другое - как в нем получить те данные которые мне вернул скрипт.

Antares
25.12.2005, 01:40
Для твоего примера:

lv = new LoadVars();
lv.sendAndLoad('get.php', lv);
lv.onLoad = function(success) {
trace(this.имя_отправленной_из_PHP_переменной);
};


Но я обычно делаю так:

// PHP:

...
echo "result=$res";



// AS:
import mx.utils.Delegate;

var myLV:LoadVars = new LoadVars();
myLV.onLoad = Delegate.create(this, onLoadHandler);

function onLoadHandler ( success:Boolean ) : Void
{
// Посмотрим, куда теперь ссылкается this в этой функции
trace([this, myLV]);
// И что выдаст такое обращение
trace(myLV.result);
}


Однако еще проще сцеплять пары имя-значение в одну строку, выводить из php как значение переменной result, а затем иметь полную свободу действий, возможно даже сразу в onData

Sneg
25.12.2005, 14:11
Для твоего примера...

Спасибо большое, как раз то что нужно.