O modo de tela cheia permite que você configure o palco de um filme para preencher todo o monitor do visualizador, sem nenhuma borda ou menu de contêiner. A propriedade
displayState
da classe Stage é usada para ativar e desativar o modo de tela cheia para um SWF. A propriedade
displayState
pode ser configurada como um dos valores definidos pelas constantes da classe flash.display.StageDisplayState. Para ativar o modo de tela cheia, defina a propriedade
displayState
como
StageDisplayState.FULL_SCREEN
:
stage.displayState = StageDisplayState.FULL_SCREEN;
Para ativar o modo interativo de tela inteira (novidade no Flash Player 11.3), defina a propriedade
displayState
como
StageDisplayState.FULL_SCREEN_INTERACTIVE
:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
No Flash Player, o modo de tela cheia só pode ser iniciado por meio do ActionScript em resposta a um clique do mouse (incluindo o clique com o botão direito) ou pressionamento de tecla. O conteúdo do AIR em execução na caixa de proteção de segurança do aplicativo não requer a ativação do modo de tela cheia em resposta a um gesto do usuário.
Para ativar o modo de tela cheia, defina a propriedade
displayState
como
StageDisplayState.NORMAL
.
stage.displayState = StageDisplayState.NORMAL;
Além disso, o usuário pode optar por sair do modo de tela cheia alternando o foco para outra janela ou usando uma de várias combinações de tecla: a tecla Esc (todas as plataformas), Control-W (Windows), Command-W (Mac) ou Alt-F4 (Windows).
Ativação do modo de tela cheia no Flash Player
Para ativar o modo de tela cheia para um arquivo SWF incorporado a uma página HTML, o código HTML a ser incorporado ao Flash Player deve incluir uma tag
param
e o atributo
embed
com o nome
allowFullScreen
e o valor
true
, do seguinte modo:
<object>
...
<param name="allowFullScreen" value="true" />
<embed ... allowFullScreen="true" />
</object>
Na ferramenta de autoria do Flash, selecione Arquivo -> Configurações de publicação e, na aba HTML da caixa de diálogo Configurações de publicação, selecione o modelo Somente Flash - Permitir tela cheia.
No Flex, verifique se o modelo HTML inclui as tags
<object>
e
<embed>
que dão suporte a tela cheia.
Se estiver usando JavaScript em uma página da Web para gerar as tags incorporadas no SWF, altere o JavaScript para adicionar a tag
allowFullScreen param
e o atributo. Por exemplo, se a página HTML usa a função
AC_FL_RunContent()
(que é usada pelas páginas HTML geradas pelo Flash Professional e pelo Flash Builder), adicione o parâmetro
allowFullScreen
a essa chamada de função do seguinte modo:
AC_FL_RunContent(
...
'allowFullScreen','true',
...
); //end AC code
Isso não se aplica aos arquivos SWF em execução no Flash Player autônomo.
Nota:
Se você definir o Modo de janela (wmode no HTML) como Opaco sem janela (opaco) ou Transparente sem janela (transparente), a janela da tela cheia será sempre opaca
O uso do modo de tela cheia com o Flash Player em um navegador também apresenta restrições de segurança. Essas restrições estão descritas em
Segurança
.
Ativação do modo interativo de tela inteira no Flash Player 11.3 e superior
O Flash Player 11.3 e superior suporta o modo interativo de tela inteira, o que permite o suporte integral para todas as teclas do teclado (exceto
Esc
, que sai do modo interativo de tela inteira). Moto interativo de tela cheia útil para jogos (por exemplo, para permitir o bate papo em um jogo multijogador ou controles de teclado WASD em um jogo de tiro em primeira pessoa).
Para ativar o modo interativo de tela inteira para um arquivo SWF incorporado em uma página HTML, o código HTML para incorporar o Flash Player deve incluir uma marca
param
e o atributo
embed
com o nome
allowFullScreenInteractive
e o valor
true
da seguinte forma:
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
Na ferramenta de autoria do Flash, selecione Arquivo -> Configurações de publicação e, na aba HTML da caixa de diálogo Configurações de publicação, selecione o modelo Somente Flash - Permitir tela cheia.
No Flash Builder e Flex, verifique se os modelos HTML incluem as marcas de formatação
<object>
e
<embed>
que suportam o modo interativo de tela inteira.
Se estiver usando o JavaScript em uma página da Web para gerar as marcas de formatação integradas SWF, você deve alterar o JavaScript para adicionar a marca de formatação e o atributo
allowFullScreenInteractive param
. Por exemplo, se a página HTML usa a função
AC_FL_RunContent()
(que é usada em páginas HTML geradas pelo Flash Professional e pelo Flash Builder), você deve adicionar o parâmetro
allowFullScreenInteractive
para a função de chamada da seguinte forma:
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
Isso não se aplica aos arquivos SWF em execução no Flash Player autônomo.
Tamanho do palco e dimensionamento em tela cheia
As propriedades
Stage.fullScreenHeight
e
Stage.fullScreenWidth
retornam a altura e a largura do monitor utilizado quando se passa para o tamanho de tela cheia, caso a entrada nesse estado ocorra imediatamente. Esses valores poderão estar incorretos se o usuário tiver a oportunidade de mudar o navegador de um monitor para outro depois que você recuperá-los, mas antes de entrar no modo de tela cheia. Se você recuperar esses valores no mesmo manipulador de eventos em que definiu a propriedade
Stage.displayState
como
StageDisplayState.FULL_SCREEN
, eles estarão corretos. No caso de usuários que têm diversos monitores, o conteúdo SWF se expande para ocupar apenas um monitor. O Flash Player e o AIR usam uma métrica para determinar qual monitor contém a maior parte do SWF e usam esse monitor para o modo de tela cheia. As propriedades fullScreenHeight e fullScreenWidth refletem apenas o tamanho do monitor usado no modo de tela cheia. Para obter mais informações, consulte
Stage.fullScreenHeight
e
Stage.fullScreenWidth
em
Referência do ActionScript® 3.0 para Adobe® Flash® Platform
.
O comportamento de dimensionamento do palco para o modo de tela cheia é igual ao de um modo normal; o dimensionamento é controlado pela propriedade
scaleMode
da classe Stage. Se a propriedade
scaleMode
estiver definida como
StageScaleMode.NO_SCALE
, as propriedades
stageWidth
e
stageHeight
da classe Stage serão alteradas para refletir o tamanho da área da tela ocupado pelo SWF (a tela inteira, nesse caso); se for visualizado no navegador, o parâmetro HTML controlará a configuração.
Você pode usar o evento
fullScreen
da classe Stage para detectar e responder quando o modo de tela cheia está ativado ou desativado. Por exemplo, você talvez queira reposicionar, adicionar ou remover itens da tela ao acessar ou sair do modo de tela cheia, como mostra este exemplo:
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);
Como mostra este código, o objeto do evento
fullScreen
é uma ocorrência da classe flash.events.FullScreenEvent, que inclui uma propriedade
fullScreen
que indica se o modo de tela cheia está ativado (
true
) ou não (
false
).
Suporte para teclado no modo de tela cheia
Quando o Flash Player é executado em um navegador, todo ActionScript relacionado ao teclado, como eventos de teclado e entrada de texto nas ocorrências de TextField, é desativado no modo de tela cheia. As exceções (as teclas que ficam ativadas) são estas:
-
Teclas selecionadas que não são impressas, especificamente as teclas de seta, a barra de espaço e a tecla Tab
-
Os atalhos de teclado que encerram o modo de tela cheia: Esc (Windows e Mac), Control-W (Windows), Command-W (Mac) e Alt-F4
Essas restrições não se aplicam a conteúdo SWF em execução no Flash Player independente ou no AIR. O AIR dá suporte a um modo de tela cheia interativa que permite entrada do teclado.
Suporte para mouse no modo de tela cheia
Por padrão, os eventos do mouse no modo de tela cheia funcionam da mesma forma dos eventos fora do modo de tela cheia. No entanto, no modo de tela cheia, você pode, como opção, configurar a propriedade
Stage.mouseLock
para ativar o travamento do mouse. O travamento do mouse desativa o cursor e permite o movimento sem restrições do mouse.
Nota:
Você somente pode ativar o travamento do mouse no modo de tela cheia para aplicativos de área de trabalho. Se você configurar em aplicativos que não estejam no modo de tela cheia ou em aplicativos em dispositivos móveis, criará uma exceção.
O bloqueio do mouse é automaticamente desativado e o cursor torna-se visível novamente quando:
-
O usuário sai do modo de tela inteira usando a tecla Esc (todas as plataformas), Ctrl+W (Windows), Comando+W (Mac) ou Alt+F4 (Windows).
-
A janela do aplicativo fica desfocada.
-
Qualquer UI de configuração é visível, incluindo todas as caixas de diálogo de privacidade.
-
Uma caixa de diálogo nativa é mostrada, por exemplo, uma caixa de diálogo de carregamento de arquivo.
Eventos associados a movimentos do mouse, como o evento
mouseMove
, use a classe MouseEvent para representar o objeto do evento. Quando o travamento do mouse estiver desativado, use as propriedades
MouseEvent.localX
e
MouseEvent.localY
para determinar a localização do mouse. Quando o travamento do mouse estiver ativado, use as propriedades
MouseEvent.movementX
e
MouseEvent.movementY
para determinar a localização do mouse. As propriedades
movementX
e
movementY
contêm alterações na posição do mouse desde o último evento, em vez das coordenadas absolutas da localização do mouse.
Dimensionamento em hardware no modo de tela cheia
Você pode usar a propriedade
fullScreenSourceRect
da classe Stage para configurar o Flash Player ou o AIR para dimensionar uma região específica do palco no modo de tela cheia. O Flash Player e o AIR fazem dimensionamento em hardware, se possível, usando a placa gráfica e de vídeo do computador de um usuário, e geralmente exibe conteúdo mais rapidamente do que no dimensionamento em software.
Para tirar vantagem do dimensionamento em hardware, defina o palco inteiro ou parte dele para o modo de tela cheia. O código ActionScript 3.0 a seguir define o palco inteiro para o modo de tela cheia:
import flash.geom.*;
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
Quando essa propriedade é definida como um retângulo válido e a propriedade
displayState
é definida como o modo de tela cheia o Flash Player e o AIR dimensionam a área especificada. O tamanho real do Palco em pixels no ActionScript não é alterado. O Flash Player e o AIR forçam um limite mínimo para o tamanho do retângulo de forma a acomodar a mensagem padrão "Pressione Esc para sair do modo de tela cheia". Em geral, esse limite está em torno de 260 por 30 pixels, mas pode variar de acordo com a plataforma e a versão do Flash Player.
A propriedade
fullScreenSourceRect
só pode ser definida quando o Flash Player ou AIR não está no modo de tela cheia. Para usar esta propriedade corretamente, defina-a primeiro e, em seguida, defina a propriedade
displayState
para o modo de tela cheia.
Para ativar o dimensionamento, defina a propriedade
fullScreenSourceRect
como um objeto de retângulo.
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
Para desativar o dimensionamento, defina a propriedade
fullScreenSourceRect
como
null
.
stage.fullScreenSourceRect = null;
Para aproveitar todos os recursos de aceleração de hardware com o Flash Player, ative-a na caixa de diálogo Configurações do Flash Player. Para carregar a caixa de diálogo, clique com o botão direito do mouse (Windows) ou clique mantendo a tecla Control pressionada (Mac) dentro do conteúdo Flash Player exibido no navegador. Selecione a aba Exibir, que é a primeira, e clique na caixa de seleção: Habilitar aceleração de hardware.
Modos de janela direto e de composição GPU
O Flash Player 10 introduz dois modos de janela (direto e composição GPU) que você pode ativar através das configurações de publicação da ferramenta de autoria do Flash. Esses modos não são suportados no AIR. Para aproveitar as vantagens desses modos, você deve ativar a aceleração de hardware para o Flash Player.
O modo direto usa o caminho mais rápido e direto para enviar gráficos para a tela, o que é vantajoso para a reprodução de vídeos.
A Composição GPU usa a unidade de processamento gráfico da placa de vídeo para acelerar a composição. A composição de vídeo é o processo de dispor várias imagens em camadas para criar uma única imagem de vídeo. Quando a composição é acelerada com a GPU, ela pode melhorar o desempenho de conversão YUV, correção de cores, rotação ou dimensionamento e mesclagem. Conversão YUV refere-se à conversão de cores de sinais analógicos compostos, que são usados para transmissão, no modelo de cores RGB (vermelho, verde, azul) usado por monitores e câmeras de vídeo. O uso da GPU para acelerar a composição reduz as demandas de memória e de computação que, de outro modo, seriam atribuídas à CPU. Ele também resulta em uma reprodução mais contínua para vídeo com definição padrão.
Seja cauteloso na implementação desses modos de janela. O uso da composição GPU pode ser dispendioso para a memória e os recursos da CPU. Se não for possível executar algumas operações (como modos de mesclagem, filtragem, corte ou mascaramento) na GPU, elas serão feitas pelo software. A Adobe recomenda que você se restrinja a um arquivo SWF por página HTML quando usar esses modos e que não ative esses modos para banners. O recurso Testar filme do Flash não utiliza aceleração de hardware, mas você pode usá-la através da opção Publicar visualização.
É inútil configurar uma taxa de quadros superior a 60 no arquivo SWF, que é a taxa máxima de atualização da tela. Configurar a taxa de quadros com um valor entre 50 e 55 viabiliza quadros descartados, que podem ocorrer por vários motivos de tempos em tempos.
O uso do modo direto exige o Microsoft DirectX 9 com 128 MB de VRAM no Windows e OpenGL para Apple Macintosh, Mac OS X v10.2 ou superior. A composição GPU exige o Microsoft DirectX 9 e suporte para Pixel Shader 2.0 no Windows com 128 MB de VRAM. No Mac OS X e no Linux, a composição GPU exige o OpenGL 1.5 e várias extensões OpenGL (objeto framebuffer, multitextura, objetos Shader, linguagem de sombreamento, sombreador de fragmentos).
É possível ativar os modos de aceleração
direto
e
gpu
por arquivo SWF na caixa de diálogo Configurações de publicação do Flash usando o menu Aceleração de hardware da aba Flash. Se você clicar em Nenhum, o modo de janela voltará para
padrão
,
transparente
ou
opaco
, conforme especificado pela configuração Modo de janela na aba HTML.