Documentación de Flash CS3 |
|||
| Programación con ActionScript 3.0 > Programación de la visualización > Utilización de objetos de visualización > Configuración de las propiedades de Stage | |||
La clase Stage sustituye la mayoría de las propiedades y métodos de la clase DisplayObject. Si se llama a una de estas propiedades o métodos sustituidos, Flash Player emite una excepción. Por ejemplo, el objeto Stage no tiene propiedades x ni y porque su posición es fija como el contenedor principal de la aplicación. Las propiedades x e y hacen referencia a la posición de un objeto de visualización con respecto a su contenedor; como Stage no se incluye en ningún otro contenedor de objeto de visualización, estas propiedades no se aplican.
|
NOTA |
|
Algunas propiedades y métodos de la clase Stage no están disponibles para los objetos de visualización que no se encuentran en el mismo entorno limitado de seguridad que el primer archivo SWF cargado. Para ver más detalles, consulte Seguridad del escenario. |
La propiedad framerate de la clase Stage se utiliza para definir la velocidad de fotogramas de todos los archivos SWF cargados en la aplicación. Para más información, consulte Referencia del lenguaje y componentes ActionScript 3.0.
Si se ajusta una pantalla de Flash Player, Flash Player ajusta automáticamente el contenido del escenario para compensar. La propiedad scaleMode de la clase Stage determina cómo se ajustará el contenido del escenario. Esta propiedad se puede establecer en cuatro valores distintos, definidos como constantes en la clase flash.display.StageScaleMode.
Para tres de los valores de scaleMode (StageScaleMode.EXACT_FIT, StageScaleMode.SHOW_ALL y StageScaleMode.NO_BORDER), Flash Player ajustará la escala del contenido del escenario para adaptarlo a sus límites. Las tres opciones difieren en la forma de determinar cómo se realizará el ajuste de escala:
StageScaleMode.EXACT_FIT ajusta proporcionalmente la escala del archivo SWF.StageScaleMode.SHOW_ALL determina si aparece un contorno, como las barras de color negro que aparecen al ver una película de pantalla panorámica en un televisor normal. StageScaleMode.NO_BORDER determina si se puede recortar parcialmente el contenido o no.Como alternativa, si se establece scaleMode en StageScaleMode.NO_SCALE, el contenido del escenario mantendrá el tamaño definido cuando el usuario ajuste el tamaño de la ventana de Flash Player. Éste es el único modo de escala que permite utilizar las propiedades width y height de la clase Stage para determinar las dimensiones en píxeles reales de la ventana de Flash Player cuyo tamaño se ha ajustado. (En los otros modos de escala, las propiedades stageWidth y stageHeight siempre reflejan la anchura y la altura originales del archivo SWF.) Además, si se establece scaleMode en StageScaleMode.NO_SCALE y se ajusta el tamaño del archivo SWF, se distribuye el evento resize de la clase Stage, lo que permite realizar los ajustes necesarios.
Por consiguiente, si establece scaleMode en StageScaleMode.NO_SCALE, tendrá mayor control sobre el ajuste del contenido de la pantalla al cambiar el tamaño de la ventana. Por ejemplo, en un archivo SWF que contiene un vídeo y una barra de control, puede interesarle hacer que la barra de control mantenga el mismo tamaño cuando se cambie el tamaño del escenario y modificar únicamente el tamaño de la ventana de vídeo para adaptarla al cambio de tamaño del escenario. Esto se ilustra en el siguiente ejemplo:
// videoScreen es un objeto de visualización (p. ej., una instancia de Video) que contiene un
// vídeo; está situado en la esquina superior izquierda del escenario, y
// debe ajustarse su tamaño cuando se cambie el tamaño del SWF.
// controlBar es un objeto de visualización (p. ej., una instancia de Sprite) que contiene varios
// botones; debe mantenerse en la esquina inferior izquierda del
// escenario (bajo la pantalla de vídeo) y no se debe cambiar su tamaño cuando se cambie
// el tamaño del SWF.
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
var swfStage:Stage = videoScreen.stage;
swfStage.scaleMode = StageScaleMode.NO_SCALE;
swfStage.align = StageAlign.TOP_LEFT;
function resizeDisplay(event:Event):void
{
var swfWidth:int = swfStage.stageWidth;
var swfHeight:int = swfStage.stageHeight;
// Resize the video window.
var newVideoHeight:Number = swfHeight - controlBar.height;
videoScreen.height = newVideoHeight;
videoScreen.scaleX = videoScreen.scaleY;
// Reposition the control bar.
controlBar.y = newVideoHeight;
}
swfStage.addEventListener(Event.RESIZE, resizeDisplay);
El modo de pantalla completa permite ver el archivo SWF en toda la pantalla de visualización, sin bordes, barras de menús y elementos similares. La propiedad displayState de la clase Stage se utiliza para activar y desactivar el modo de pantalla completa para un archivo SWF. La propiedad displayState puede establecerse en uno de los valores definidos por las constantes de la clase flash.display.StageDisplayState. Para activar el modo de pantalla completa, debe establecerse displayState en StageDisplayState.FULL_SCREEN:
// mySprite es una instancia de Sprite, ya añadida a la lista de visualización mySprite.stage.displayState = StageDisplayState.FULL_SCREEN;
Para salir del modo de pantalla completa, debe establecerse la propiedad displayState en StageDisplayState.NORMAL:
mySprite.stage.displayState = StageDisplayState.NORMAL;
Además, un usuario puede elegir abandonar el modo de pantalla completa seleccionando otra ventana o utilizando una de las posibles combinaciones de teclas: la tecla Esc (todas las plataformas), Ctrl-W (Windows), Comando-W (Mac) o Alt-F4 (Windows).
El comportamiento de ajuste de escala del escenario en el modo de pantalla completa es el mismo que en el modo normal; el ajuste de escala se controla con la propiedad scaleMode de la clase Stage. Como siempre, si la propiedad scaleMode se establece en StageScaleMode.NO_SCALE, las propiedades stageWidth y stageHeight de Stage cambian para reflejar el tamaño del área de pantalla que ocupa el archivo SWF (en este caso, toda la pantalla).
Se puede utilizar el evento fullScreen de la clase Stage para detectar cuándo se activa y desactiva el modo de pantalla completa, y para responder ante ello. Por ejemplo, puede ser que se desee volver a colocar, añadir o quitar elementos de la pantalla al activar o desactivar el modo de pantalla completa, como en el ejemplo:
import flash.events.FullScreenEvent;
function fullScreenRedraw(event:FullScreenEvent):void
{
if (event.fullScreen)
{
// Quitar campos de texto de entrada.
// Añadir un botón que cierre el modo de pantalla completa.
}
else
{
// Volver a añadir campos de texto de entrada.
// Quitar el botón que cierra el modo de pantalla completa.
}
}
mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);
Tal y como se muestra en este código, el objeto del evento fullScreen es una instancia de la clase flash.events.FullScreenEvent, que incluye una propiedad fullScreen que indica si el modo de pantalla completa está activado (true) o no (false).
Cuando se trabaja con el modo de pantalla completa en ActionScript, debe tenerse en cuenta lo siguiente:
param y un atributo embed con el nombre allowFullScreen y el valor true, como en el siguiente código:
<object>
...
<param name="allowFullScreen" value="true" />
<embed ... allowfullscreen="true" />
</object>
Si se utiliza JavaScript en una página Web para generar las etiquetas de incorporación de SWF, se debe modificar JavaScript para añadir el atributo/etiqueta de parámetro allowFullScreen. Por ejemplo, si la página HTML utiliza la función AC_FL_RunContent() (que se usa en páginas HTML generadas tanto en Flex Builder como en Flash), se debe añadir el parámetro allowFullScreen a dicha llamada de función, del siguiente modo:
AC_FL_RunContent(
...
'allowFullScreen','true',
...
); //end AC code
Esto no se aplica a los archivos SWF que se ejecutan en el reproductor Flash Player autónomo.
Hay unas cuantas restricciones relacionadas con la seguridad que también habría que tener en cuenta. Se describen en Entornos limitados de seguridad.
Flash CS3
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/main/00000150.html