saber - ¿Cómo puedo crear una aplicación Flex con altura dinámica?
plataformas para crear aplicaciones moviles (5)
¿Hay alguna forma de permitir que una aplicación flexible tenga una altura dinámica mientras está incorporada en un contenedor HTML?
Quiero que la aplicación Flex crezca en altura de forma que no cause barras verticales de desplazamiento.
Lamentablemente, no, creo que la única forma en que puedes hacer esto es deshacerse del envoltorio html en primer lugar. HTH.
Esto es posible. Para un ejemplo, vea el nuevo Kontain por fi. Puede verlo directamente en acción creando una nueva publicación de blog y agregando líneas al campo de entrada. A medida que el campo de entrada crece en tamaño, la página se vuelve más alta.
Tendrás que coordinar entre Flash y Javascript a través de ExternalInterface. Cuando su aplicación Flex necesite cambiar el tamaño, encuentre el nuevo tamaño (probablemente al cavar en el motor de diseño de Flex) y envíelo a una función de Javascript a través de ExternalInterface. El javascript puede establecer una nueva propiedad de altura en el contenedor. Probablemente también desee establecer verticalScrollPolicy = "off" en su etiqueta para que Flex no muestre las barras de desplazamiento cuando se ejecuta el motor de diseño.
No estoy seguro de entender por completo la pregunta, ¿está intentando que la aplicación tenga un tamaño mayor que el puerto de visualización del navegador? Si es así, entonces, como @hasseg comentó y @RickDT mencionó, puede establecer las propiedades horizontalScrollPolicy y / o verticalScrollPolicy de la aplicación en "off"?
Si simplemente está tratando de asegurarse de que su aplicación se amplía con los cambios en la forma y el tamaño del navegador, entonces asegúrese de establecer lo siguiente (o los valores que se adaptan) en su etiqueta de aplicación más externa.
percentWidth="100"
percentHeight="100"
La mejor manera debe ser anular el método de medida de la aplicación como:
private var _lastMeasuredHeight:int;
override protected function measure():void
{
super.measure();
if (measuredHeight != _lastMeasuredHeight)
{
_lastMeasuredHeight = measuredHeight;
if (ExternalInterface.available)
{
ExternalInterface.call("setFlashHeight", measuredHeight);
}
}
}
Esta función asume que tiene una función javascript llamada setFlashHeight que puede aceptar un parámetro de altura (o como quiera que le llame). Un ejemplo sería:
function setFlashHeight(newHeight){
//assuming flashDiv is the name of the div contains flex app.
var flashContentHolderDiv = document.getElementById(''flashDiv'');
flashContentHolderDiv.style.height = newHeight;
}
Yo uso swfobject para incrustar mis aplicaciones flexibles. Entonces el objeto flash reside dentro de un div. Si el tuyo no; la función js podría modificarse fácilmente para establecer la altura del objeto flash. Cuando implemente esta solución, notará que scrollBars no está funcionando ya que flash consume el evento. Pero ese es otro tema ...
No hay necesidad de todo eso, simplemente cambie la aplicación de spark a mx. esto se mostrará de forma automática porque creo que spark no lo admite en absoluto (creo que es estúpido error de adobe)
Me gusta esto:
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" >
</mx:Application>
en lugar de:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" >
</s:Application>
deje la etiqueta de la aplicación sin la especificación de altura "no use height =" 100% "