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.");
}
}
}
}