Comunidad de diseño web y desarrollo en internet online

Resize TitleWindow

Citar            
MensajeEscrito el 17 Jul 2014 01:42 pm
Buenas.

Resulta que en mi aplicación tengo un botón que cuando lo pulso me abre una segunda pantalla que es un TitleWindow.
El caso es que quiero que cuando cambie el tamaño de mi navegador este titlewindow también cambie de tamaño.
En el titlewindow he declarado lo siguiente:

Código Flex :

[Bindable] public var PrintedHeight:Number = FlexGlobals.topLevelApplication.systemManager.stage.stageHeight - 40;//17/07


para luego en la línea en la que defino mi panel usar dicha variable

Código Flex :

<mx:Panel id="myPanel" dropShadowVisible="false" headerHeight="0" verticalScrollPolicy="on" verticalLineScrollSize="10" height="{PrintedHeight}" buttonMode="true">


El tema es que cuando pulso mi botón y se abre mi TitleWindow éste se ajusta al tamaño que tenga el navegador en ese momento pero si una vez abierta cambio el tamaño del navegador (sólo quiero la altura) la ventana del TitleWindow ni se entera. Para que surta efecto tengo que cerrarla y volverla a abrir.
Es como si el Bindable no estuviera funcionando realmente. ¿Se os ocurre dónde puede estar el problema y como solucionarlo?
Muchas gracias por anticipado.

Saludos

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Jul 2014 12:31 pm
Eso ocurre porque el valor no se modifica cuando cambias el tamano de la ventana, para eso deberías escuchar el evento resize del Stage .... aunque en Flex no es tan fácil, porque cada contenedor tiene su propio policy, y por defecto la aplicación no se reescala cuando cambias el tamaño del navegador

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Jul 2014 05:27 am
Por si le sirve a alguien lo he resuelto de la siguiente forma.

En la función giveFocus2SWF la cual se ejecuta cuando se produce el evento applicationComplete he añadido las dos siguientes líneas:

Código Flex :

stage.addEventListener(Event.RESIZE, resizeHandler);
PrintedHeight = stage.stageHeight;

Lo que harán es que cada vez que la ventana de la aplicación cambie de tamaño se actualize la variable PrintedHeight la cual está declarada en el módulo principal como:

Código Flex :

[b][Bindable] public var PrintedHeight:Number;[/b]


Además he definido la función resizeHandler como sigue:

Código Flex :

private function resizeHandler(event:Event):void{
   PrintedHeight = stage.stageHeight;
}


Todo esto está definido en el módulo principal. En la segunda ventana que queremos que se ajuste a la principal defino el panel haciendo referencia al parámetro PrintedHeight, lo defino así:

Código Flex :

<mx:Panel id="myPanel" dropShadowVisible="false" headerHeight="0" verticalScrollPolicy="on" verticalLineScrollSize="10" height="{myMainApp.PrintedHeight - 40}" buttonMode="true">


Me ha funcionado. Ahora cuando redimensiono el navegador donde corre mi aplicación si el segundo panel está abierto se redimensiona en altura para caber en el nuevo tamaño.

Saludos

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Jul 2014 12:21 pm
Bien, con una pista has investigado y lo has resuelto buscando info .... un ejemplio para imitar ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Jul 2014 05:44 am

solisarg escribió:

Bien, con una pista has investigado y lo has resuelto buscando info .... un ejemplio para imitar ;)

Jorge


Muchas gracias Jorge :wink:

Por empardopo

71 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.