En una aplicación de flex tengo varios paneles y dentro de ellos hay distintos charts y botones. Lo que quiero hacer es que cuando pulses un botón del Panel, dicho Panel se convierta en un popup y así poder ver su contenido más grande en la pantalla.
El problema es que si hago un PopUpManager.addPopUp con ese Panel me hace lo que quiero aunque desaparece de la aplicación, por lo que cuando hago el removePopUp, el popup desaparece y ya no tengo el panel en la app principal.
En este link, hay una imagen más aclaratoria.(creo que no se poner la imagen aquí directamente)
http://img140.imageshack.us/my.php?image=panelll7.gif
Este es el código, super reducido, por que en la aplicación lo hago con varias clases y sería más complicado de mostrar.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private var panelClon:Panel;
private function panelExpandir():void{
panelClon = new Panel;
panelClon = panelUno;//copio el contenido de un panel en otro
panelClon.width=1000;
panelClon.height=600;
PopUpManager.addPopUp(panelClon,this,true);//lanzo el popup
PopUpManager.centerPopUp(panelClon);
btnExpand.visible= false;
var btnClose:Button = new Button();
btnClose.addEventListener(MouseEvent.CLICK,panelCerrar);
panelClon.addChild(btnClose);
}
private function panelCerrar(event:MouseEvent):void
{
PopUpManager.removePopUp(panelClon);
}
]]>
</mx:Script>
<mx:HDividedBox width="100%" height="100%">
<mx:Panel id="panelUno" width="50%" height="50%">
<mx:Label text="prueba"/>
<mx:Label text="prueba"/>
<mx:Button id="btnExpand" click="panelExpandir()" label="expand" />
</mx:Panel>
<mx:Panel id="paneldos" width="50%" height="50%">
<mx:Label text="prueba"/>
<mx:Label text="prueba"/>
</mx:Panel>
</mx:HDividedBox>
</mx:Application>
Muchas gracias anticipadas, un saludo
