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.
