Eu fiz de um jeito aqui, mas depois que eu fecho trava o sistema.....

Adiciono o panel no NavigatorContent

//Cria tela no form principal
private function chamaTelaMenu(event:Event):void {
 //definition é o tipo da classe de acordo com a propriedade
var definicao:Class = 
getDefinitionByName(event.currentTarget.selectedItem.@data) as Class;
//através do definition, gera uma instancia nova do tipo, Uma nova janela 
da tela
 var myInstance:spark.components.Panel = new  definicao();
// Adiciona a instancia ao da aplicação ou componente utilizado,
// mesmo que o tipo/instancia seja de outro módulo
 var nvTela:NavigatorContent = new NavigatorContent();
 //Adciona o nome da tela de acordo com o label do menu
nvTela.label = event.currentTarget.selectedItem.@label;
nvTela.x=0;
nvTela.y=0;
 nvTela.addElement(myInstance);
 this.vwPrincipal.addElement(nvTela);

//adiciona o novo indice da tela para abrir em foco
indexTelas++; 
    //adiciona o indice no view stack para abrir em foco a nova tela chamada 
vwPrincipal.selectedIndex = indexTelas;
 //adciona o index da tela para utilizar no fechar da tela atual
indexTelaRemover = indexTelas;
 }


na tela principal coloquei um botão para fechar esse panel que abri, então 
nesse botão coloquei o metodo removendo o elemento do viewStack pelo index 
do nvTela (NavigatorContent)



<mx:Button id="btFec" width="20" height="20"
  chromeColor="#000000" color="#FFFFFF"
  cornerRadius="0" fontWeight="bold"
  labelPlacement="right" paddingLeft="0"   
  upSkin="@Embed('assets/Inn/fechar.png')"
  overSkin="@Embed('assets/Inn/fechardown.png')"
  downSkin="@Embed('assets/Inn/fechar.png')"
  toolTip="Fechar Tela"
  >
<mx:click>
<![CDATA[
  if (indexTelaRemover != 0) {
     vwPrincipal.removeElementAt(indexTelaRemover);
  }
]]>
</mx:click> 
</mx:Button>


A tela fecha, mas quando vou clicar em um botão qualquer da tela principal 
trava....



Alguém pode me ajudar por favor ?

Já estou há alguns dias e não consigo....




Em domingo, 3 de novembro de 2013 20h31min51s UTC-2, Robinho de Morais 
escreveu:
>
> Boa noite pessoal....
>
> Coloquei em um tree o meu menu e chamo minhas telas em um viewStack dessa 
> maneira:
>
> //Cria tela no form principal
> private function chamaTelaMenu(event:Event):void {
>
> //definition é o tipo da classe de acordo com a propriedade
> var definicao:Class = 
> getDefinitionByName(event.currentTarget.selectedItem.@data) as Class;
> //através do definition, gera uma instancia nova do tipo, Uma nova janela 
> da tela
>  var myInstance:spark.components.Panel = new  definicao();
> // Adiciona a instancia ao da aplicação ou componente utilizado,
> // mesmo que o tipo/instancia seja de outro módulo
>  var nvTela:NavigatorContent = new NavigatorContent();
>  //Adciona o nome da tela de acordo com o label do menu
> nvTela.label = event.currentTarget.selectedItem.@label;
> nvTela.x=0;
> nvTela.y=0;
>  nvTela.addElement(myInstance);
>  this.vwPrincipal.addElement(nvTela);
>
> //adiciona o novo indice da tela para abrir em foco
> indexTelas++; 
>     //adiciona o indice no view stack para abrir em foco a nova tela 
> chamada 
> vwPrincipal.selectedIndex = indexTelas;
>   //this.nvTela.icon = event.currentTarget.selectedItem.@icon;
>  }
>
>
> Meu view Stack
>
> <mx:ViewStack id="vwPrincipal" width="100%" height="333"
>   borderVisible="false">
> <s:NavigatorContent id="nvTelas" width="100%" height="100%"
> icon="@Embed('assets/Inn/home.png')" label="Menu">
> </s:NavigatorContent>
> </mx:ViewStack>
>
>
> Agora eu queria é fechar essa tela que abriu, então na tela (panel) quero 
> colocar um botão de fechar para fechar ela que está aberta, como faço para 
> fechar ?
>

-- 
-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um 
e-mail para [email protected].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Responder a