Problema com listener em modulo flex

Pessoal tenho um modulo em flex que precisa ouvir um listener que é lançado por outra outro modulo da aplicação o problema é que usando o componente modulo ele não está sendo executado (ou seja ele não ouve o listener).

Sem usar mx:Module ele funciona normalmente mais por questão de performance tive que modularizar a aplicação.

Se alguem ai tiver alguma solução de listener par modulos em flex é bem vinda.

Obrigado!!

Segue codigo:

-------------------------Codigo Tela Dispara Listener ----------------------

ComponenteAction

private var updateManager:UpdateController = UpdateController.getInstance();
private function inserirResultHandler(re:ResultEvent):void{
	var objResult:Object = JSON.decode(re.result.toString());
	if(objResult.inserir.estado == 1){
		[b]updateManager.dispatchEvent(new Event("atualizaComponente"));[/b]  //Evento disparado para Listener
		HAlert.informacao(HMensagens.SucessoSalvar);
		listar();
		limparCadastroComponente();
	}else{
		HAlert.erro(HMensagens.ErroSalvar);
	}
}

------------Codigo Tela Ouvinte ---------------

OsAction

private var updateManager:UpdateController = UpdateController.getInstance();

private function init():void{
	updateManager.addEventListener("atualizaAceite", atualizar);
	updateManager.addEventListener("atualizaComponente", atualizar);
}

private function atualizar(evt:Event):void {
	listar();
	popularProjetos();
}

OsView

<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" 
		   xmlns:s="library://ns.adobe.com/flex/spark" 
		   xmlns:mx="library://ns.adobe.com/flex/mx" 
		   xmlns:libs="br.com.componente.libs.*"
		   xmlns:mdi="br.com.componente.libs.mdi.*"
		   height="485" width="1010" layout="vertical"
		   creationComplete="tabs.selectedIndex=1;init()">

<fx:Script source="../action/OsAction.as"/>

</mx:Module>

-------------------- Classe UpdateManager Responsável pelo Eventos ---------------------

package br.com.compoentes.gestio.util
{
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
	
	public class UpdateController extends EventDispatcher
	{
		
		private static var instance:UpdateController;
		private static var allowInstantiation:Boolean;
		
		public static function getInstance():UpdateController {
			if (instance == null) {
				allowInstantiation = true;
				instance = new UpdateController();
				allowInstantiation = false;
			}
			return instance;
		}
		
		public function UpdateController(target:IEventDispatcher=null):void {
			super(target);
			if (!allowInstantiation) {
				throw new Error("Error: Nova instancia impossivel, Use UpdateController.getInstance() para usar a mesma instancia.");
			}
			
		}
		
	}
}

Experimenta colocar esses Listeners no seu Application (WindowedApplication se for Air) com o parâmetro useCapture=true. Não cheguei a mexer muito com módulo, mas me lembro de ter umas opções de ele rodar suas classes separadas para cada módulo, e dai sua tentativa de Singleton pode ir para o espaço. Acho que até tinha um parâmetro de compilação do módulo que indica se é para ele carregar suas prórprias classes ou se deve as mesmas da App onde é carregado.

[]s

saquei… tambem tava achando que tem tava matando tudo era o singleton no modulo.

esqueci aqui não é Air nao mais vou testar aqui com o parametro. Valeu!

Por favor, evite dar títulos em tópicos usando somente letras maiúsculas. Prejudica a leitura e parece que você quer chamar mais atenção que os demais, e isso fere a netiqueta.

Se for flex, como eu tinha escrito, adicione o Listener no seu Application (Seu MXML principal que roda a aplicação).

[]s

Usa o <s:Aplication> como Mediator(GoF) Ele vai capturar o evento e se necessario quando o modulo for carregado ele redespacha o evento ou despacha um novo carregando os dados de um modulo para outro. :smiley: