Flex 4.5 - Назначение переменной после загрузки служебных данных - PullRequest
0 голосов
/ 20 ноября 2011

Я сгенерировал служебный вызов службы с именем ServiceName.getService () - я могу успешно извлекать данные, отображаемые внутри элементов макета mxml, но вместо того, чтобы отображать их, я просто хочу назначить их глобальным.

Я всегда получаю сообщение об ошибке во второй строке ниже - по-видимому, значение еще не получено. Я также попытался добавить слушателя и установить глобальное значение на ЗАВЕРШЕНО, но это, очевидно, никогда не вызывается. (Я предполагаю, что этот сгенерированный сервисный вызов на самом деле не вызывает ЗАВЕРШЕНИЕ?)

Короткий вопрос: как просто назначить переменную после загрузки ее через вызов данных службы. (Не только HTTP)

getServiceResult.token=ServiceName.getService();
GlobalVars.variablename = getServiceResult.lastResult.variablename;

1 Ответ

0 голосов
/ 20 ноября 2011

Я всегда получаю сообщение об ошибке во второй строке ниже - очевидно, значение еще не получено.

Это правильно.Во Flex / Flash удаленный сервер вызывает асинхронно.Это означает, что ваша вторая строка - для установки значения - потенциально работает до того, как будет выполнен вызов службы.

Вы должны установить обработчик result для сервисного вызова.Скорее всего, это то же самое, что вы делали, когда заставляли работать вещи для отображения.

Например:

getServiceResult.token=ServiceName.getService();
getServiceResult.addEventListener(ResultEvent.RESULT,myServiceResult);

И в других местах вашего кода:

protected function myServiceResult(event:ResultEvent):void{
 GlobalVars.variablename = event.results.variablename;
}

Когда вы говорите о добавлении слушателя по завершению, я не уверен, что вы имеете в виду.Вы имеете в виду creationComplete?или обновление завершено?Или приложение завершено?Или что-то совсем другое.

...