El modo de pantalla completa permite establecer un escenario de película para rellenar el monitor completo de un espectador sin ningún borde de contenedor o menú. 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 la propiedad
displayState
en
StageDisplayState.FULL_SCREEN
:
stage.displayState = StageDisplayState.FULL_SCREEN;
Para activar el modo de pantalla completa(novedad en Flash Player 11.3), establezca la propiedad
displayState
en
StageDisplayState.FULL_SCREEN_INTERACTIVE
:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
En Flash Player, el modo de pantalla completa solo puede iniciarse a través de ActionScript como respuesta a un clic del ratón (incluido el clic con el botón derecho) o una pulsación de tecla. El contenido de AIR que se ejecuta en el entorno limitado de seguridad de la aplicación no requiere que se indique el modo de pantalla completa como respuesta a un gesto del usuario.
Para salir del modo de pantalla completa, debe establecerse la propiedad
displayState
en
StageDisplayState.NORMAL
.
stage.displayState = StageDisplayState.NORMAL;
Asimismo, el usuario puede optar por salir del modo de pantalla completa cambiando a una ventana diferente o utilizando una de las distintas combinaciones de teclas: tecla Esc (todas las plataformas), Control-W (Windows), Comando-W (Mac) o Alt-F4 (Windows).
Activación del modo de pantalla completa en Flash Player
Para activar el modo de pantalla completa en un archivo SWF incorporado en una página HTML, el código HTML para incorporar Flash Player debe incluir una etiqueta
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>
En la herramienta de edición de Flash, seleccione Archivo -> Configuración de publicación y en el cuadro de diálogo Configuración de publicación, en la ficha HTML, seleccione la plantilla Solo Flash - Permitir pantalla completa.
En Flex, asegúrese de que la plantilla HTML incluya las etiquetas
<object>
y
<embed>
que son compatibles con la pantalla completa.
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 en Flash Professional y Flash Builder), 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.
Nota:
si el modo de ventana (wmode en HTML) se establece en Opaco sin ventanas (opaco) o Transparente sin ventanas (transparente), la ventana de pantalla completa siempre es opaca.
También existen limitaciones relacionadas con la seguridad al utilizar el modo de pantalla completa de Flash Player en un navegador. Estas limitaciones se describen en el capítulo
Seguridad
.
Activación del modo de pantalla completa en Flash Player 11.3 y versiones posteriores
Flash Player 11.3 y versiones posteriores admite el modo de pantalla completa, que acepta todas las teclas del teclado (salvo
Esc
, que sale del modo de pantalla completa). El modo interactivo de pantalla completa resulta útil para jugar (por ejemplo, para permitir juegos con varios jugadores o controles de teclado WASD en jugadores que disparan en primera persona).
Para activar el modo de pantalla completa en un archivo SWF incorporado en una página HTML, el código HTML para incorporar Flash Player debe incluir una etiqueta
param
y un atributo
embed
con el nombre
allowFullScreenInteractive
y el valor
true
, como el siguiente código:
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
En la herramienta de edición de Flash, seleccione Archivo -> Configuración de publicación y en el cuadro de diálogo Configuración de publicación, en la ficha HTML, seleccione la plantilla Solo Flash - Permitir pantalla completa.
En Flash Builder y en Flex, asegúrese de que las plantillas HTML incluyen etiquetas
<object>
y
<embed>
que admitan el modo de pantalla completa.
Si se utiliza JavaScript en una página web para generar las etiquetas de incorporación de SWF, se debe modificar el JavaScript para añadir el atributo/etiqueta
allowFullScreenInteractive param
. Por ejemplo, si la página HTML utiliza la función
AC_FL_RunContent()
(que se usa en páginas HTML generadas en Flash Professional y Flash Builder), se debe añadir el parámetro
allowFullScreenInteractive
a dicha llamada de función, del siguiente modo:
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
Esto no se aplica a los archivos SWF que se ejecutan en el reproductor Flash Player autónomo.
Escala y tamaño del escenario en pantalla completa
Las propiedades
Stage.fullScreenHeight
y
Stage.fullScreenWidth
devuelven la altura y la anchura del monitor que se utiliza cuando se pasa al tamaño de pantalla completa, si ese estado se introduce de forma inmediata. Estos valores pueden ser incorrectos si el usuario tiene la oportunidad de mover el navegador de un monitor a otro después de recuperar estos valores pero antes de pasar al modo de pantalla completa. Si se recuperan estos valores en el mismo controlador de eventos en el que se estableció la propiedad
Stage.displayState
como
StageDisplayState.FULL_SCREEN
, los valores son correctos. Para usuarios de varios monitores, el contenido de SWF solo se expandirá para llenar un monitor. Flash Player y AIR usan una métrica para determinar el monitor que contiene la mayor parte del archivo SWF y utiliza dicho monitor en el modo de pantalla completa. Las propiedades fullScreenHeight y fullScreenWidth solo reflejan el tamaño del monitor que se utiliza para el modo de pantalla completa. Para obtener más información, consulte
Stage.fullScreenHeight
y
Stage.fullScreenWidth
en
Referencia de ActionScript 3.0 para la plataforma de Adobe Flash
.
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. 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 la pantalla ocupada por el archivo SWF (toda la pantalla en este caso); si se visualiza en el navegador, el parámetro HTML controla la configuración.
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)
{
// Remove input text fields.
// Add a button that closes full-screen mode.
}
else
{
// Re-add input text fields.
// Remove the button that closes full-screen mode.
}
}
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
).
Compatibilidad con el teclado en modo de pantalla completa
Cuando Flash Player se ejecuta en un navegador, todo el código ActionScript relacionado con el teclado, como los eventos de teclado y la introducción de texto en instancias de TextField, se desactiva en modo de pantalla completa. Las excepciones (teclas que permanecen activadas) son:
-
Determinadas teclas que no afectan a la impresión, como las teclas de flecha, la barra espaciadora o el tabulador
-
Métodos abreviados de teclado que cierran el modo de pantalla completa: Esc (Windows y Mac), Control-W (Windows), Comando-W (Mac) y Alt-F4
Estas restricciones no se aplican a contenido de SWF ejecutado en el reproductor autónomo de Flash Player o en AIR. AIR admite un modo interactivo de pantalla completa que permite la entrada del teclado.
Compatibilidad con el ratón en modo de pantalla completa
De forma predeterminada, los eventos de ratón en modo de pantalla completa funcionan del mismo modo que cuando no se está en pantalla completa. Sin embargo, en modo de pantalla completa, si se desea es posible establecer la propiedad
Stage.mouseLock
para activar el bloqueo del ratón. El bloqueo del ratón desactiva el cursor y permite el movimiento ilimitado del ratón.
Nota:
solo es posible activar el bloqueo del ratón en el modo de pantalla completa en las aplicaciones para escritorio. Si se activa cuando no se está en modo de pantalla completa, o en aplicaciones para dispositivos móviles, se emitirá una excepción.
El bloqueo del ratón se desactiva automáticamente y el cursor del ratón se hace de nuevo visible cuando:
-
El usuario sale del modo de pantalla completa mediante el uso de la tecla Escape (todas las plataformas), Control-W (Windows), Comando-W (Mac) o Alt-F4 (Windows).
-
La ventana de la aplicación deja de estar seleccionada.
-
Cualquier interfaz de configuración es visible, incluidos todos los cuadros de diálogo de privacidad.
-
Se visualiza un cuadro de diálogo nativo, por ejemplo, un cuadro de diálogo carga de archivos.
Los eventos asociados al movimiento del ratón, como el evento
mouseMove
, utilizan la clase MouseEvent para representar al objeto de evento. Si está desactivado el bloqueo del ratón, utilice las propiedades
MouseEvent.localX
y
MouseEvent.localY
para determinar la ubicación del ratón. Si está activado el bloqueo del ratón, utilice las propiedades
MouseEvent.movementX
y
MouseEvent.movementY
para determinar la ubicación del ratón. Las propiedades
movementX
y
movementY
contienen cambios de posición del ratón desde el último evento, no las coordenadas absolutas de la ubicación del ratón.
Escala de hardware en modo de pantalla completa
La propiedad
fullScreenSourceRect
de la clase Stage se puede utilizar para establecer que Flash Player o AIR escalen una región específica del escenario al modo de pantalla completa. La escala de hardware en Flash Player y AIR, en caso de estar disponible, se activa en la tarjeta gráfica y de vídeo del equipo y suele mostrar el contenido con mayor rapidez que la escala de software.
Para aprovechar la escala de hardware, debe establecer todo el escenario o parte del mismo en modo de pantalla completa. El siguiente código ActionScript 3.0 establece todo el escenario en modo de pantalla completa:
import flash.geom.*;
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
Cuando esta propiedad se establece en un rectángulo válido y la propiedad
displayState
se define en modo de pantalla completa, Flash Player y AIR aplican escala al área especificada. El tamaño real del escenario expresado en píxeles dentro de ActionScript no cambia. Flash Player y AIR aplican un límite mínimo para el tamaño del rectángulo de modo que se ajuste al mensaje estándar “Press Esc to exit full-screen mode” (Presione Esc para salir del modo de pantalla completa). Este límite suele ser de 260 x 30 píxeles, pero puede variar según la plataforma y la versión de Flash Player.
La propiedad
fullScreenSourceRect
solo se puede definir cuando Flash Player o AIR no estén en modo de pantalla completa. Para utilizar esta propiedad correctamente, primero debe establecerse y, seguidamente, definir la propiedad
displayState
en modo de pantalla completa.
Para activar la escala, establezca la propiedad
fullScreenSourceRect
en un objeto rectangle.
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
Para desactivar la escala, establezca la propiedad
fullScreenSourceRect
en
null
.
stage.fullScreenSourceRect = null;
Para aprovechar íntegramente las funciones de aceleración de hardware con Flash Player, actívela mediante el cuadro de diálogo Configuración de Flash Player. Para cargar el cuadro de diálogo, haga clic con el botón derecho del ratón (Windows) o presione Control y haga clic (Mac) dentro del contenido de Flash Player en el navegador. Seleccione la ficha Visualización, que es la primera ficha, y active la casilla de verificación: Activar aceleración de hardware.
Modos de ventana directo y de composición con GPU
Flash Player 10 introduce dos modos de ventana, directo y composición por GPU, que se pueden habilitar desde la configuración de publicación de la herramienta de edición de Flash. Estos modos no se admiten en AIR. Para poder utilizar estos modos, es preciso activar la aceleración de hardware para Flash Player.
El modo directo utiliza la ruta más rápida y directa para introducir gráficos en pantalla, lo que resulta apropiado para la reproducción de vídeo.
La composición con GPU utiliza la unidad de procesamiento de gráficos de la tarjeta de vídeo para acelerar la composición. La composición de vídeo es el proceso de organización en capas de varias imágenes para crear una sola imagen de vídeo. Cuando la composición se acelera con la GPU, es posible mejorar el rendimiento de la conversión YUV, la corrección de color, la rotación o la escala, así como la fusión. La conversión YUV hace referencia a la conversión de color de las señales analógicas del compuesto, que se utilizan para la transmisión, en el modelo de color RGB (rojo, verde, azul) que utilizan las pantallas y las cámaras de vídeo. El uso de la GPU para acelerar la composición reduce la demanda del equipo y la memoria que se aplica a la CPU. También supone una reproducción más suavizada para el vídeo de definición estándar.
Sea cuidadoso al implementar estos modos de ventana. El uso de la composición con GPU puede resultar costoso en términos de recursos de CPU y memoria. Si algunas operaciones (por ejemplo, modos de fusión, recorte o enmascaramiento) no se pueden llevar a cabo en la GPU, se realizan mediante el software. Adobe recomienda la limitación a un archivo SWF por página HTML cuando se utilicen estos modos, que no deben se habilitar para banners. La función Probar película de Flash no utiliza la aceleración de hardware, pero puede emplearla mediante la opción Vista previa de publicación.
La definición de una velocidad de fotogramas en el archivo SWF que sea superior a 60, velocidad máxima de actualización de pantalla, no resulta útil. El establecimiento de la velocidad de fotogramas de 50 a 55 permite fotogramas eliminados, lo cual puede suceder por distintos motivos en algunas ocasiones.
Para poder utilizar el modo directo, es preciso disponer de Microsoft DirectX 9 con VRAM de 128 MB en Windows y OpenGL para Apple Macintosh, Mac OS X v10.2 o versiones posteriores. El modo de composición por GPU requiere compatibilidad con Microsoft DirectX 9 y Pixel Shader 2.0 en Windows con 128 MB de VRAM. En Mac OS X y Linux, la composición por GPU requiere OpenGL 1.5 y diversas extensiones de OpenGL (objeto framebuffer, objetos multitexture y shader, lenguaje de sombreado y sombreados de fragmentos).
Puede activar los modos de aceleración
directo
y
gpu
por archivo SWF mediante el cuadro de diálogo de configuración de publicación de Flash, utilizando el menú de aceleración de hardware de la ficha Flash. Si selecciona Ninguno, el modo de ventana vuelve a los valores
predeterminado
,
transparente
u
opaco
, tal y como se especifica en la configuración del modo de ventana en la ficha HTML.