Muitas pessoas me questionaram como faz para executar uma função em outro arquivo.
Como por exemplo em um sistema que tenha uma listagem.mxml e um cadastro,.mxml . Quando o usuário clicar em salvar na tela de cadastro o sistema deve atualizar a lista, porém estas funções estão em arquivos separados, sendo assim é necessário utilizar eventos. Como o exemplo abaixo:
cadastro.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300" title="Cadastro">
<mx:Form x="0" y="0" width="100%" height="100%">
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button label="Salvar" click="salvar()"/>
</mx:ControlBar>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function salvar():void
{
dispatchEvent(new Event("executaFuncaoNaLista"))
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
</mx:TitleWindow>
lista.mxml
Como por exemplo em um sistema que tenha uma listagem.mxml e um cadastro,.mxml . Quando o usuário clicar em salvar na tela de cadastro o sistema deve atualizar a lista, porém estas funções estão em arquivos separados, sendo assim é necessário utilizar eventos. Como o exemplo abaixo:
cadastro.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300" title="Cadastro">
<mx:Form x="0" y="0" width="100%" height="100%">
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button label="Salvar" click="salvar()"/>
</mx:ControlBar>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function salvar():void
{
dispatchEvent(new Event("executaFuncaoNaLista"))
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
</mx:TitleWindow>
lista.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="500" title="Lista">
<mx:ControlBar>
<mx:Button label="Abrir PopPup" click="abrePopUp()"/>
</mx:ControlBar>
<mx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.controls.Alert;
import mx.managers.PopUpManager;
private function abrePopUp():void
{
var cad : Cadastro = new Cadastro();
cad.addEventListener("executaFuncaoNaLista",ExecOnClose);
PopUpManager.addPopUp(cad,this,true);
PopUpManager.centerPopUp(cad);
}
private function ExecOnClose(e:Event):void
{
Alert.show('Executou a função que está na Lista','Olá');
}
]]>
</mx:Script>
</mx:TitleWindow>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="500" title="Lista">
<mx:ControlBar>
<mx:Button label="Abrir PopPup" click="abrePopUp()"/>
</mx:ControlBar>
<mx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.controls.Alert;
import mx.managers.PopUpManager;
private function abrePopUp():void
{
var cad : Cadastro = new Cadastro();
cad.addEventListener("executaFuncaoNaLista",ExecOnClose);
PopUpManager.addPopUp(cad,this,true);
PopUpManager.centerPopUp(cad);
}
private function ExecOnClose(e:Event):void
{
Alert.show('Executou a função que está na Lista','Olá');
}
]]>
</mx:Script>
</mx:TitleWindow>


0 comentários:
Postar um comentário