cara eu uso modulos PRA TUDO e nunca tive esse tipo de problema ate por que na teoria, quando voce carrega um modulo ele meio que vem zerado ou seja ele e recriado.
pergunta e. Ta usando referencia fraca nos listners, destruindo as variaveis antes de descarregar o modulo pra nao ficar nada ? lembra que os modulos sempre fica uns lixos na memoria. 2011/2/4 Diego Hordi <diego.ho...@gmail.com> > Pessoal, > > Situação: > Estou desenvolvendo um projeto, cuja tela principal deverá conter um > ModuleLoader que carregará vários módulos ao longo da existência da > aplicação, existindo a possibilidade de um módulo ser recarregado > também várias vezes, caso o usuário queira, por exemplo, entrar no > módulo de fornecedores, sair, ir para o módulo de clientes, sair e > voltar para o módulo de fornecedores. > > Problema: > Os módulos funcionam perfeitamente na primeira vez em que são > carregados, porém, na segunda vez que são carregados, alguns > componentes, como o DataGrid, por exemplo, ao disparar o evento > ListEvent, não passam a linha atual para a propriedade > itemRenderer.data do evento. Já coloquei e tirei o SDK da RSL, já > troquei a versão do SDK, troquei o ModuleLoader da tela principal por > um ViewStack, mas nada de funcionar corretamente. Atualmente estou > utilizando o SDK 3.4 (merged into code). Abaixo um trecho do meu > componente NavigationContext, que dentre outras coisas, gerencia o > carregamento dos módulos: > > [code] > package br.com.hordi.rechapps.view.utils{ > > import br.com.hordi.rechapps.view.forms.LoadingProgressForm; > > import mx.core.Application; > import mx.events.ModuleEvent; > import mx.modules.ModuleLoader; > import mx.resources.ResourceManager; > import flash.events.EventDispatcher; > > [Resource("exceptions")] > public class NavigationContext extends EventDispatcher{ > > private static var instance:NavigationContext; > [Bindable] private var moduleLoader:ModuleLoader; > [Bindable] private var > loadingProgressForm:LoadingProgressForm; > > public function NavigationContext( > enforcer:SingletonEnforcer ){ > if( !enforcer ){ > throw new > Error( ResourceManager.getInstance().getString( "exceptions", > "SingletonInstanceException" ) ); > } else { > loadingProgressForm = > LoadingProgressForm.getInstance(); > } > } > > public static function getInstance():NavigationContext{ > if( instance == null ){ > instance = new NavigationContext( new > SingletonEnforcer() ); > } > return instance; > } > > public function browse( url:String ):void{ > moduleLoader = new ModuleLoader(); > moduleLoader.addEventListener(ModuleEvent.READY, > function(event:ModuleEvent):void{ > loadingProgressForm.hide(); > for( var idx:Number = 0; idx < > Application.application.modulesContainer.getChildren().length; idx++ ) > { > var unusedModule:ModuleLoader = > Application.application.modulesContainer.getChildAt( idx ) as > ModuleLoader; > > Application.application.modulesContainer.removeChild( unusedModule ); > unusedModule.unloadModule(); > } > > Application.application.modulesContainer.addChild( moduleLoader ); > > Application.application.modulesContainer.selectedIndex = > (Application.application.modulesContainer.getChildren().length-1); > }); > moduleLoader.addEventListener(ModuleEvent.PROGRESS, > function(event:ModuleEvent):void{ > loadingProgressForm.setProgress( > Math.ceil((event.bytesLoaded / > event.bytesTotal)*100), 100 ); > loadingProgressForm.label = "Carregando > módulo - " + > Math.ceil((event.bytesLoaded / event.bytesTotal)*100) + "%"; > loadingProgressForm.title = "Carregando..."; > }); > moduleLoader.loadModule( url ); > loadingProgressForm.show(); > } > > } > > } > > class SingletonEnforcer{} > [/code] > > OBS: Deixei os listeners do moduleLoader inline mesmo, porque ainda > estou tentando outras soluções para o problema. > > Se alguém puder ajudar, agradeço bastante! > > Um abraço! > Diego Hordi > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com > Para sair da lista, envie um email em branco para > flexdev-unsubscr...@googlegroups.com > Mais opções estão disponíveis em http://groups.google.com/group/flexdev -- *Hélio Antonio Fransico Silva* Desenvolvedor web Certificado Flash developer Certificado Flash Design Certificado web developer Consultor Microsiga / Totvs Desenvolvedor ADVPL / ASP Analista de sistemas e ERP Sênior. -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev