Bem tentei fazer um Debug diferente e notei que os componentes são realmente criados mas só o consegui ver após ter criado uma função para o creationComplete da view userManagerPanel.
Agora a minha questão é quando eu faço o switch da view ele não faz logo o load de tudo? Porque pelo que estou a entender ele demora a fazer o load e é por isso que quando registo o Mediator ele não apanha referencia da instancia pois ainda está a ser criado, e não me parece funcional criar uma função a dizer que o componente foi totalmente criado e enviar uma Notification a dize-lo. Provavelmente estou a registar o mediador no sitio errado, se estou qual seria então o melhor sitio/forma de o fazer? Isto se esta for a melhor solução para o caso. Daniel gomes 2008/8/18 Daniel Gomes <[EMAIL PROTECTED]>: > Bom dia pessoal, > > Neste momento após 3 longos dias de testes e debugging não consigo > encontrar o porque de quando altero a view na viewstack ele não > instancia os componentes dentro dessa view. > > Isto é tenho um ficheiro Main.mxml que contem uma viewstack com dois > componentes (LoginPanel e UserManagerPanel) e que segue a seguinte > sequencia: > > - Aplicação começa > - Faço Login > - Após sucedido mostra a view UserManagerPanel <- e aqui deveria > instanciar os dois componentes dento do UserManagerPanel e não o faz > (que são o UserList e o UserForm). > > Já fiz debug de muitas formas diferentes, e só me dá null. > > Este é o meu Main.mxml: > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application > xmlns:mx="http://www.adobe.com/2006/mxml" > layout="horizontal" > xmlns:loginComp="com.pt.onedesign.user_manager.view.components.Login.*" > > xmlns:userManagerComp="com.pt.onedesign.user_manager.view.components.UserManager.*" > initialize="facade.startupApp(this)"> > > <mx:Script> > <![CDATA[ > import > com.pt.onedesign.user_manager.view.ApplicationMediator; > import com.pt.onedesign.user_manager.ApplicationFacade; > > private var facade:ApplicationFacade = > ApplicationFacade.getInstance(); > > [Bindable] public var currentViewSelector:int = > ApplicationMediator.LOGIN_PANEL; > public var activeView:Object; > > > ]]> > </mx:Script> > > <mx:Binding source="appView.selectedChild" destination="activeView" /> > <mx:ViewStack id="appView" resizeToContent="true" > selectedIndex="{currentViewSelector}" > > <loginComp:LoginPanel id="loginPanel"/> > <userManagerComp:UserManager id="userManagerPanel"/> > </mx:ViewStack> > </mx:Application> > > E esta é a parte em que ele muda a view: > (ApplicationMediator.as vou só resumir a parte principal do código que > muda a view) > > public static const LOGIN_PANEL : int = 0; > public static const USER_MANAGER_PANEL : int = 1; > > case LoginProxy.LOGIN_SUCCESS: > app.currentViewSelector = USER_MANAGER_PANEL; <- ele faz isto e muda a > view > facade.registerMediator(new > UserListMediator(app.activeView.userList)); <- aqui já deveria ter o > userList instanciado e dá-me null :| > facade.sendNotification(UserProxy.GET_USERS_LIST); > break; > > É realmente estranho, existia uma solução que era o creationPolicy=all > mas gostaria de saber se existe outra solução? > > Daniel Gomes > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
