Oi João , O que está a acontecer com o teu LocalEditor é que o Show event é executado na criação desse objecto e fica depois "pendurado" entre a mudança dos States. Apesar de talvez não ser a melhor opção, eu costumo usar outro atributo do componente, como por exemplo a propriedade "visible" (a que mais uso, nestes casos). Ao usar a propriedade "visible" nesta situação, crio o objecto no State base e dou-lhe o valor de "false", na mudança de State (para "editing"), mudo apenas a propriedade para true. Comigo tem funcionado sem problemas para o Show Event e é uma solução rápida sem sobre-escrever código. Acho estranho não ter funcionado contigo.
Abraços,
Nelson
2008/6/17 Nuno Rosa <[EMAIL PROTECTED]>:
> 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>>
