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.

Responder a