João, não me lembrei que o evento ADDED sobe na cadeia (bubbles) ao contrário do ADDED_TO_STAGE. A única coisa a ter em atenção é apontar a verificação do flash player para a versao 9.0.28.0. Ou então verificar dentro do listener se event.currentTarget==event.target subscrevendo o ADDED.
2008/6/17 João Saleiro <[EMAIL PROTECTED]>: > O evento Added resulta em dezenas de chamadas ao init() (pergunto-me > porquê..). > > No entanto com o evento AddedToStage resolvi o problema! :D > > Obrigado Nuno! ;) > > João Saleiro > > João Saleiro > > Email/MSN: [EMAIL PROTECTED] > Skype: joao.saleiro > Tel: +351 916 077 097 / +351 968 203 370 > WWW: http://www.webfuel.pt > > > Nuno Rosa wrote: > > Penso que se subscreveres o evento Event.ADDED podes chamar o método init() > sempre que o LocaleEditor é adicionado a uma DisplayList. > > 2008/6/17 João Saleiro <[EMAIL PROTECTED]>: > >> Boas, >> >> tenho uma view que possui dois states, o "base" state e o "editing": >> >> <mx:states> >> <mx:State name="editing"> >> >> <mx:RemoveChild target="{dgListaDeLocales}"/> >> <mx:AddChild relativeTo="{gestorDeLinguas}" >> position="lastChild"> >> <ns1:LocaleEditor id="localeEditor" >> cancel="{currentState=STATE_BASE}" locale="{selectedLocale}"/> >> </mx:AddChild> >> </mx:State> >> </mx:states> >> >> >> A view LocaleEditor não sabe, nem tem que saber que está a ser usada na >> view que tem os states. No entanto, preciso que a view LocaleEditor execute >> determinada função sempre que é "mostrada" ao utilizador. >> >> Fiz o seguinte teste (LocaleEditor.mxml) : >> >> <?xml version="1.0" encoding="utf-8"?> >> <mx:VBox >> xmlns:mx="http://www.adobe.com/2006/mxml"<http://www.adobe.com/2006/mxml> >> show="init()" >> creationComplete="init()"> >> >> <mx:Script> >> <![CDATA[ >> import mx.controls.Alert; >> >> private function init():void >> { >> Alert.show("show"); >> } >> ]]> >> </mx:Script> >> >> </mx:VBox> >> >> >> O Alert só aparece da primeira vez que a view é mostrada (ou seja, no >> creationComplete). A partir daí nunca mais é exibido! >> Quando se muda para o state "editing", da primeira fez é feito o addChild, >> logo chamado o creationComplete. Presumi que da segunda vez, ou era feito o >> addChild novamente, ou que simplesmente era mudado a propriedade "visible" >> dessa view. Pelos vistos não é nenhuma dessas duas coisas que acontece. Como >> resolvo então de forma a que o método "init()" seja chamado sempre que a >> view é mostrada ao utilizador? >> >> Obrigado, >> >> João Saleiro >> -- >> João Saleiro >> >> Email/MSN: [EMAIL PROTECTED] >> Skype: joao.saleiro >> Tel: +351 916 077 097 / +351 968 203 370 >> WWW: http://www.webfuel.pt >> > > > > > --~--~---------~--~----~------------~-------~--~----~ Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade Portuguesa de Desenvolvimento de RIAs - www.riapt.org" do Grupos Google. Para enviar mensagens para este grupo, envie um email para [email protected] Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED] Para mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT -~----------~----~----~----~------~----~------~--~---
<<inline: logo.gif>>
<<image/gif>>
