|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2009
Сообщений: 4
|
Как разрулить множественные SOAP запросы для инициализации колекшена
Доброго времени суток,
Мне нужно проинициализировать ArrayCollection объектами, значения филдов которого получаются через СОАП запросы (функция getUdfValuePrj): for (var i:int=0; i < data.length; i++) { var task:Task=new Task(); task.laborio = getUdfValuePrj(data[i].id, LABORIOUSNESS); } tempTaskArray.addItem(task); private function initWebServices(wsdl:String):void { _udfWs = new WebService(); _udfWs.wsdl = wsdl; _udfWs.getTaskUDFValue.addEventListener("result", getTaskUDFValueResult); _udfWs.getTaskUDFValue.addEventListener("fault", handleFault); _udfWs.loadWSDL(); } Пытался сам что-то соображать, получилась такая ересь: private function getTaskUDFValueResult(event:ResultEvent): { _udfValue = event.result as String; } private function getUdfValuePrj (taskId:String, udfCaption:String):void { _udfValue = "Loading..."; _udfWs.getTaskUDFValue (taskId,udfCaption); while (_udfValue == "Loading...") { } return _udfValue; } |
|
|||||
Modus ponens
|
1. Читать справку:
http://livedocs.adobe.com/flex/3/lan...ebService.html 2. Загрузка в AS3 асинхронная. Соответственно, подписаться на события и обработать их. 3. Если использование фреймворка не является жизненной необходимостью, то лучше использовать URLLoader вместо WebService.
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Oct 2009
Сообщений: 4
|
1. Справку читал.
2. А вы мой код смотрели? Вообще-то я обрабатываю событие "result". Но код получается не очень адекватный. 3. А смысл? В любом случае для каждого параметра нужно ожидать событие окончания загрузки. |
|
|||||
Modus ponens
|
И где вы в спавке видели такой вариант ожидания ответа от сервера?
Цитата:
Цитата:
- этот класс не встраивается в SWF. (меньше размер файла) - его методы и свойства реализованы на C и не требуют компиляции при загрузке SWF. (быстрее работает)
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Oct 2009
Сообщений: 4
|
Цитата:
private function getTaskUDFValueResult(event:ResultEvent): { _udfValue = event.result as String; } Я нашел примеры, где осуществляется один запрос, а в обработчике мы просто инициализируем то, что надо, например так: Но что делать, когда таких запросов много? Как указать в моем случае в обработчике, что я хочу проинициализировать конкретный элемент списка tempTaskArray? |
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
Написать класс, который эти запросы будет выстраивать в очередь и знать с чем он в данный момент работает и для кого ждет данных.
|
|
|||||
.
|
Цитата:
Вариантов всего два: либо адрес назначения содержится в ответе, либо клиент знает куда распихивать пришедшие данные. |
|
|||||
Регистрация: Oct 2009
Сообщений: 4
|
Цитата:
|
Часовой пояс GMT +4, время: 09:35. |
|
« Предыдущая тема | Следующая тема » |
|
|