Daniel,

julgo que a resposta ao teu problema pode ser encontrada aqui: http://puremvc.org/content/view/91/185/



João Saleiro
Chief Technology Officer
 
 
Tlm 1: +351 916 077 097 Skype: joao.saleiro
Tlm 2: +351 968 203 370 Email/MSN: [EMAIL PROTECTED]
www.webfuel.pt


Daniel Gomes wrote:
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
-~----------~----~----~----~------~----~------~--~---


  

Responder a