Sim, eu testei ambos, mas o problema persiste, ou seja, o evento é apanhado
em todas as instâncias da classe.
Considerando o remoteobject, não existe forma de conter o evento de retorno
do serviço na instância da classe a que pertence?
Em desespero de causa, até tentei usar "this." na definição do método de
retorno (this.runphphandler), mas não resolve.
On Feb 14, 2012 12:15 AM, "Jorge Raimundo" <[email protected]> wrote:

> Tens estes dois métodos.
> stopPropagation e stopImmediatePropagation (no caso seria evt.
> stopImmediatePropagation() ).
>
> Podes ver qual é a diferença de forma breve aqui:
>
> http://nordicnets.com/2010/11/survive-your-flex-interview-%E2%80%93-part-three-how-to-prevent-event-propagation-and-what%E2%80%99s-the-difference-between-stoppropagation-and-stopimmediatepropagation/
>
> Ou mais em detalhe aqui:
> http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html
>
> 2012/2/13 Miguel Vaz <[email protected]>
>
>>
>> Boa noite,
>>
>> Estou a ter alguma dificuldade em parar um evento que teima em se
>> propagar para tudo que é lado.
>>
>> Tenho uma classe que faz uma travessia de um grafo, existindo a
>> possibilidade de um nó desse grafo, ser um outro grafo. Esta situação pode
>> acontecer infinitas vezes (quase) - grafos dentro de grafos.
>> Para a travessia, a classe cria instâncias de si própria quando um dos
>> nodos tem um grafo. Um género de recursividade.
>>
>> O problema é que preciso de chamar um serviço em certo tipo de nodos e,
>> quando regresso da chamada, retomo a travessia, mas se o estiver a fazer já
>> numa segunda (ou x) instância da classe, o evento de retorno é apanhado por
>> todas as instâncias da classe. :-P
>>
>> Exemplo de código:
>>
>> // método da classe run_workflow.as que chama o serviço externo
>>  public function inits(pre:String):void{
>>  remota = new RemoteObject();
>>  remota.showBusyCursor = true;
>> remota.destination = "GenericFlexDestination";
>>  remota.source = "mainclass";
>> remota.runPHP.addEventListener(ResultEvent.RESULT, runPHPHandler); // <-
>> é este desgraçado que causa problemas
>>  remota.addEventListener(FaultEvent.FAULT, errorHandler);
>>  }
>>
>> private function runPHPHandler(evt:ResultEvent):void{
>>   // tralha de retorno da chamada externa
>>  }
>>
>>
>> Algures no código, crio uma nova instância da classe assim:
>>
>> var tempRunWF:run_workflow = new run_workflow();
>> tempRunWF.executar();
>>
>> Nesta nova instância, obviamente, existe um método "inits()" com o mesmo
>> evento (ver acima, é o desgraçado), e sempre que faz trigger, a instância
>> pai da classe apanha também o evento.
>>
>> Desculpem se a explicação é confusa. Estou a testar várias situações, mas
>> até agora ainda nada. Já tentei stopImmediatePropagation no Handler, mas
>> nada, o evento é apanhado em todo lado.
>>
>> Alguma dica, por muito abstracta que seja?
>>
>> Muito obrigado.
>>
>> Miguel
>>
>> --
>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
>> Grupos do Google.
>> Para publicar uma mensagem neste grupo, envie um e-mail para
>> [email protected].
>> Para anular a inscrição neste grupo, envie um e-mail para
>> [email protected].
>> Para ver mais opções, visite este grupo em
>> http://groups.google.com/group/riapt?hl=pt-PT.
>>
>
>  --
> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
> Grupos do Google.
> Para publicar uma mensagem neste grupo, envie um e-mail para
> [email protected].
> Para anular a inscrição neste grupo, envie um e-mail para
> [email protected].
> Para ver mais opções, visite este grupo em
> http://groups.google.com/group/riapt?hl=pt-PT.
>

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Para anular a inscrição neste grupo, envie um e-mail para 
[email protected].
Para ver mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT.

Responder a