|
|
|||||
Регистрация: Jun 2009
Сообщений: 64
|
Ожидать завершения функции
Подскажите, пожалуйста - есть функция
public function getVariableValue(Session:Number) { var VariableValue:Number=0; _data_provider.request(DataProvider.GET_VARIABLE, { params:{key:2065, session: Session}, onComplete: function(data) { trace(Session+"- "+data); VariableValue=data; } }); return VariableValue; } как с этим бороться? |
|
|||||
ну дождаться события, а там уже вашу гетВариабл.
А пример, кода, если честно не читабелен, чуть более чем полностью. Бред какой то... уж извините. |
|
|||||
Регистрация: Jun 2009
Сообщений: 64
|
нечитаем из-за форматирования?
попробуем снова: public function getVariableValue(Session:Number) { var VariableValue:Number=0; _data_provider.request(DataProvider.GET_VARIABLE, { params:{key:2065, session: Session}, onComplete: function(data) { trace(Session+"- "+data); VariableValue=data; } }); return VariableValue; } Добавлено через 17 минут хм. в голову пришла след. идея - завести еще одну переменную: var Completed:Boolean=false; при наступлении события делать её true, а перед return VariableValue - бесконечный цикл проверяющий значение Completed. Или есть более правильные способы? |
|
|||||
bad choiсe, newbie!
я что то вообще не пойму что такое этот онКомплит... Это слушатель или что... Я собсна залез в хелп, понял что вы какой то свой видимо написали Дата Провайдер. Скорее всего для запроса данных с сервера(Вконтакте??). Так вот вам нужно сначала дождаться загрузки, а только потом уже вытаскивать данные и идти дальше(слать события, вызывать методы и прочее). ну это если я правильно понял. |
|
|||||
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
Да, DataProvider для запроса данных с ВКонтакте API. Кстати, можно было просто посмотреть, как это сделано в исходниках чата
Как вариант, написать callback-функцию onGetVar: public function getVariableValue(Session:Number, onGetVar:Function) { var VariableValue:Number=0; _data_provider.request(DataProvider.GET_VARIABLE, { params:{key:2065, session: Session}, onComplete: function(data) { trace(Session+"- "+data); onGetVar(data); } }); } public function onGetVar(data:String):void { trace(data); } Последний раз редактировалось musat; 17.07.2009 в 00:26. |
|
|||||
Регистрация: Jun 2009
Сообщений: 64
|
ramshteks, нет, это не я написал dataprovider. такой идет в комплекте к чату вконтакте.
musat, спасибо. только мне теперь нужна ваша помощь, чтоб понять, как этим воспользоваться. моя задача - выполнив _data_accessor.getVariableValue(1), получить значение функции, чтоб потом вывести его (значение) на экран. понятно, что можно это сделать, например, в onGetVar (как вы сейчас делаете там trace этого значения). но так будет некрасиво. поскольку вы сейчас передаете аргумент onGetVar моей функции то, видимо, как то это значение можно прочитать. но как? )) Последний раз редактировалось LA_; 17.07.2009 в 00:43. |
|
|||||
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
Что-то я перемудрил, так лучше:
|
|
|||||
Регистрация: Jun 2009
Сообщений: 64
|
musat, а все-таки как этим пользоваться? ))
|
|
|||||
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
LA_, в смысле "как пользоваться"? В функцию onGetVar передается параметр data, т.е. значение полученной контактовской переменной.
|
|
|||||
Регистрация: Jun 2009
Сообщений: 64
|
Цитата:
как мне получить значение data в коде (за пределами DataAccessor), т.е. вне функций getVariableValue и onGetVar? или предлагается onGetVar разместить не в DataAccessor? |
Часовой пояс GMT +4, время: 19:38. |
|
« Предыдущая тема | Следующая тема » |
Теги |
ожидание , результат , функция |
|
|