Oi, João. Tenta sobrescrever o método updateDisplayList no teu LocaleEditor.mxml. Nunca estudei como as viewstates funcionam, mas acho que, cada vez que elas são operadas, uma chamada para invalidateDisplayList() deve ser feita, o que ocasiona uma chamada para updateDisplayList . Uso sempre este método como uma espécia de "coringa", porque ele sempre é chamado quando acontece uam mudança nas propriedades de um componente.
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void{
Alert.show("show again");
}
Gabriela Trindade Perry - http://www.gabriela.trindade.nom.br
Date: Tue, 17 Jun 2008 13:48:51 +0100
From: [EMAIL PROTECTED]
To: [email protected]
Subject: [riapt] Reacção ao "show" numa view que é usada num state
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
--
Untitled Document
João Saleiro
Email/MSN: [EMAIL PROTECTED]
Skype: joao.saleiro
Tel: +351 916 077 097 / +351 968 203 370
WWW: http://www.webfuel.pt
_________________________________________________________________
Explore the seven wonders of the world
http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE
--~--~---------~--~----~------------~-------~--~----~
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>>
