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.
