Load e Unload Modules

4 respostas
claudneto

Galera,

To fazendo uma aplicação simples que tem um Application (main.mxml) com apenas um ModuleLoader que foi criado assim:

<mx:ModuleLoader x="-1.7763568E-15" y="1.7763568E-15" id="ld_form" url="frmLogin.swf" loading="url"/>

Ao abrir essa aplicação, o ModuleLoader automaticamente chama o frmLogin.swf (Module).

Até ai, tudo bem. Porém, no Module frmLogin tem um botão Inscricao que deveria chamar o Module frmInscricao.

Eu fiz assim:

ld_frm.url="frmLogin.swf";
ld_frm.unloadModule();
				
ld_frm.url = "frmInscricao.swf";
ld_frm.loadModule();

Era pra ele descarregar o frmLogin e carregar o frmInscricao. Ele está fazendo isso, mas o Flex acusa erro no ld_frm quando usado no frmLogin.mxml (Module carregado pelo main.mxml).

Como eu faço pra chamar o ModuleLoader da main.mxml pra carregar e descarregar esses Modules de maneira correta?

4 Respostas

F

Vc disse q no Module frmLogin tem um botão q chama um outro módulo, dentro de frmLogin vc tem outro ModuleLoader? Pq se vc quer chamar o ld_form do Application o código q vc passou irá dar erro pq não irá encontrar o id ld_frm (é assim ou seria ld_form?)

Obs.: Qd vc faz ld_form.url=“frmInscricao.swf” o ModuleLoader já faz descarrega o módulo anterior e carrega este.

Vc pode chamar do módulo frm_Login um método da application usando parentApplication.método para chamar o módulo, mas o mais “elegante” seria vc disparar um método no módulo q seria interceptado pela Application para carregar o outro módulo tendo um código mais ou menos como o de baixo.

ld_form.unloadModule();
ld_form.loadModule("frmInscricao.swf")

Veja mais: http://fabiophx.blogspot.com/2010/03/modules.html

[]s
Espero ter ajudado.

claudneto

Então…no frmLogin eu não tenho nenhum ModuleLoader…eu ia usar o da Application mesmo.

Ai ele não rodaria com mais de um Module ao mesmo tempo. Pelo menos eu acho que se eu chamar o frmLogin (Module) e, de dentro dele, chamar outro Module, usando um ModuleLoader do frmLogin, ele vai ficar com os dois em aberto, ou não?

F

Se o frmLogin chamar tiver um ModuleLoader e vc abrir um módulo, vc terá dois abertos, mas isso é totalmente possível.

claudneto

É. Eu tava fazendo assim, mas ele ficava com um sobreposto ao outro. Ai, entre os campos do frmInscricao ele aparecia os campos do frmLogin.

Por isso eu decidi fazer um Application com apenas um ModuleLoader carregando os outros Modules.

Porém, obrigado pela ajuda. Vou ler seu blog inteiro. Hahaha…

Criado 8 de novembro de 2010
Ultima resposta 10 de nov. de 2010
Respostas 4
Participantes 2