Title: Untitled Document
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"
    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

Responder a