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>>

Responder a