Daniel,
julgo que a resposta ao teu problema pode ser encontrada aqui:
http://puremvc.org/content/view/91/185/
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
-~----------~----~----~----~------~----~------~--~---
|