Estou com o seguinte problema, tenho dois arquivos MXML o main que é o principal e o outro de cadastro, no main eu faço a inclusão do cadastro e altero o currentState, só que tenho a necessidade de criar um botão “Voltar” que exibe o main como estava anteriormente, como que eu poderia fazer isso?
main
<?xml version="1.0" encoding="utf-8"?>
<titlewindow:TitleWindowBase 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:titlewindow="titlewindow.*"
width="874" height="434" title="lab"
height.menu="434" width.funcionalidade="870">
<titlewindow:layout>
<s:HorizontalLayout/>
</titlewindow:layout>
<titlewindow:states>
<s:State name="menu"/>
<s:State name="funcionalidade"/>
</titlewindow:states>
<fx:Script>
<![CDATA[
import protocolo.CadProtocolo;
import protocolo.ConsProtocolo;
public function cadastrarProtocolo():void {
this.currentState = "funcionalidade";
var windowIn:CadProtocolo = new CadProtocolo();
formularios.removeAllElements();
formularios.addChild(windowIn);
}
public function selecionarProtocolo():void{
this.currentState = "funcionalidade";
var windowIn:ConsProtocolo = new ConsProtocolo();
formularios.removeAllElements();
formularios.addChild(windowIn);
}
public function menu():void {
formularios.removeAllChildren();
this.currentState = "menu";
}
]]>
</fx:Script>
<mx:Accordion includeIn="menu" width.menu="170" height.menu="303">
<mx:VBox label="Protocólo">
<mx:LinkButton label="Cadastrar" click="cadastrarProtocolo()" />
<mx:LinkButton label="Selecionar" click="selecionarProtocolo()" />
</mx:VBox>
</mx:Accordion>
<mx:HBox id="formularios" includeIn="funcionalidade">
</mx:HBox>
<mx:Canvas id="form" includeIn="menu,funcionalidade">
<s:Button label="Voltar" click="menu()" /> <!--coloquei aqui apenas para teste, desta forma funciona-->
</mx:Canvas>
</titlewindow:TitleWindowBase>
Protocolo
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="700" height="250">
<fx:Script>
<![CDATA[
private function menu():void {
var windowIn:main = new main();
windowIn.formularios.removeAllElements();
windowIn.currentState = "menu";
}
]]>
</fx:Script>
<mx:Form height="250" width="690">
<mx:HBox>
<mx:Label text="Cadastro de Protocólos" textAlign="center" width="650" fontSize="16" fontWeight="bold" fontStyle="normal"/>
</mx:HBox>
<mx:HBox>
<mx:Label text="Razão Social:" width="115"/>
<s:ComboBox id="razaoSocial" width="530">
<s:ArrayCollection>
<fx:Object label="AAA" data="2"/>
<fx:Object label="BBB" data="1"/>
<fx:Object label="NNNN" data="3"/>
<fx:Object label="ZZZZ" data="4"/>
</s:ArrayCollection>
</s:ComboBox>
</mx:HBox>
<mx:HBox>
<mx:Label text="Nome Contato:" width="115"/>
<s:TextInput id="nomeContato" width="530"/>
</mx:HBox>
<mx:HBox>
<mx:HBox>
<mx:HBox>
<mx:Label text="Telefone:" width="115" />
<s:TextInput id="telefoneContato" width="120"/>
</mx:HBox>
<mx:Label text="E-mail:" />
<s:TextInput id="emailContato" width="350"/>
</mx:HBox>
</mx:HBox>
<mx:HBox>
<mx:Label text="Tipo:" width="115"/>
<s:ComboBox id="tipo" width="120">
<s:ArrayCollection>
<fx:Object label="Balcão" data="1"/>
<fx:Object label="Contrato" data="2"/>
</s:ArrayCollection>
</s:ComboBox>
</mx:HBox>
<mx:HBox width="650" horizontalAlign="right">
<s:Button label="Salvar" />
<s:Button label="Limpar" />
<s:Button label="Voltar" click="menu()" /><!--ao clicar no botão da um erro -->
</mx:HBox>
</mx:Form>
</s:Group>
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at protocolo::CadProtocolo/menu()[D:\Eclipse Galileo SR2\workspace\Laboratorio\flex_src\protocolo\Cadastro.mxml:12]
at protocolo::CadProtocolo/___CadProtocolo_Button3_click()[D:\Eclipse Galileo SR2\workspace\Laboratorio\flex_src\protocolo\Cadastro.mxml:60]