Olá amigo, faz mais ou menos um ano que utilizo o FLEX e para evitar
problemas como esse eu uso uma formula muito simples para que os
resultados não fiquem confusos na hora de mostrar na tela. Por
exemplo, na tela inicial do meu aplicativo, normalmente chamo 3
métodos no HTTPService e como a quantidade de dados de cada um é
diferente, a ordem de retorno de cada um também não é sequencial. Para
resolver esse problema usei a seguinte estrutura:

Criei um objeto HTTPService na minha página:

        <mx:HTTPService
                id="WS"
                method="POST"
                url="IWS.aspx"
                resultFormat="xml"
                showBusyCursor="true"
                fault="IWS_Error(event)" />

no evento initialize eu coloco o seguinte código:
WS.addEventListener(ResultEvent.RESULT, result);

e coloco uma função:

private function result(event:ResultEvent):void

até aqui nada de novo, voce deve estar falando, veja como eu chamo a
função:

var param:Object = new Object();
param.action = "ConsultaUnidadePorEntidade";
param.codEntidade = xml.Table.Codigo;
var call:Object = WS.send(param);
call.marker = "ConsultaUnidadePorEntidade";

para cada método eu coloco um nome diferente no call.marker. Dentro da
função result eu coloco da seguinte forma:

var xml:XML;
var call:Object = event.token;
switch (call.marker)
{
       case "ConsultaUnidadePorEntidade":
              //codigo para pegar o resultado...
              break;
}

assim, coloco todas as funções q eu preciso dentro de cada case que
ele não se perde com o sincronismo. Quando preciso do resultado de uma
chamada para fazer outra, faço a chamada pro próximo método dentro do
próprio case.

Espero ter ajudado


On Aug 27, 9:50 am, Rodolpho Loreto <[EMAIL PROTECTED]> wrote:
> Olá a todos.
>
> Desenvolvo a algum tempo com o Adobe Flex e uma das coisas que não
> consigo entender bem e que até hoje me é um grande problema para
> solucionar é como fazer sincronismo de dados recebidos de um
> HTTPService com o Flex. Gostaria de saber se alguem poderia me ajudar
> a entender como fazer para recuperar dados de uma maneira sincrona ou
> se esse tipo de coisa é realmente impossível de fazer com o Flex.
>
> Ex prático para Entendermos o que eu quero dizer:
>
> Supondo estarmos fazendo um cadastro de clientes e que assim que o
> cliente for cadastrado, deve ser exibido um Alert com o telefone da
> central de atendimento mais próxima de acordo com o Unidade Federativa
> (Estado brasileiro) informado.
>
> Vamos supor que se ele for do Rio de Janeiro, deve ser enviado uma
> mensagem com o número (21) 2222-2222, se for de São Paulo (11) 3333-
> 3333, Minas (31) 4444-4444 e assim por diante, sabendo que a
> informação do telefone está em um serviço do tipo HTTPService.
>
> Eu sei que se colocarmos numa função no evento "result" poderemos
> fazer isso fácil, mas gostaria de saber se é possível fazer dentro da
> mesma rotina de código onde disparamos o método send() do
> HTTPService, fazendo com que a recuperação dos dados seja feita de
> maneira "sincrona".
>
> Peço a ajuda de vocês pois este tem sido um grande tabu a ser vencido
> para mim e para empresa onde tenho a intenção de popularizar cada vez
> mais o Flex.
>
> Obrigado.
>
> Rodolpho Loreto


--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a