Configuração de propriedades do palcoFlash Player 9 e posterior, Adobe AIR 1.0 e posterior A classe Stage substitui a maioria das propriedades e dos métodos da classe DisplayObject. Se um desses métodos ou propriedades substituídos for chamado, o Flash Player e o AIR lançarão uma exceção. Por exemplo, o objeto Stage não tem as propriedades x ou y, pois sua posição é fixa como o principal contêiner do aplicativo. As propriedades x e y fazem referência à posição de um objeto de exibição com relação ao seu contêiner e, como o objeto Stage não está contido em nenhum outro contêiner, essas propriedades não são aplicáveis. Nota: Alguns métodos e propriedades da classe Stage estão disponíveis somente para objetos de exibição que estão na mesma caixa de proteção de segurança do primeiro arquivo SWF carregado. Para obter detalhes, consulte segurança de Palco.
Controle da taxa de quadros de reproduçãoA propriedade frameRate da classe Stage é usada para definir a taxa de quadros de todos os arquivos SWF carregados no aplicativo. Para obter mais informações, consulte Referência do ActionScript 3.0 para a plataforma Adobe Flash. Controle do dimensionamento do palcoQuando a parte da tela que representa o Flash Player ou o AIR é redimensionada, o tempo de execução ajusta automaticamente o conteúdo do palco para compensar. A propriedade scaleMode da classe Stage determina como o conteúdo do palco é ajustado. Essa propriedade pode ter quatro valores diferentes, definidos como constantes na classe flash.display.StageScaleMode:
Definição do modo de dimensionamento do palco para as janelas do AIRA propriedade de palco scaleMode determina como o palco é dimensionado e corta os objetos de exibição filho quando uma janela é redimensionada. Apenas o modo noScale deve ser usado no AIR. Nesse modo, o palco não é dimensionado. Ao contrário, o tamanho do palco muda diretamente os limites da janela. Os objetos podem ser cortados se a janela for redimensionada para um tamanho menor. Os modos de dimensionamento de palco são criados para serem usados em ambientes como um navegador de Web, no qual você nem sempre pode controlar o tamanho ou a proporção de aspecto do palco. Os modos permitem que você faça a escolha mais adequada quando o palco não corresponde ao tamanho ideal nem à proporção de aspecto do seu aplicativo. No AIR, você sempre tem controle do palco de modo que, na maioria dos casos, a nova disposição do conteúdo ou o ajuste das dimensões na janela proprocionará melhores resultados do que ativar o dimensionamento do palco. No navegador e na janela inicial do AIR, a relação entre o tamanho da janela e o fator de escala inicial é lida do arquivo SWF carregado. Entretanto, quando você cria um objeto NativeWindow, o AIR escolhe uma relação arbitrária entre o tamanho da janela e o fator de escala 72:1. Portanto, se a sua janela tem 72x72 pixels, um retângulo de 10x10 adicionado à janela é desenhado no tamanho correto de 10x10 pixels. Entretanto, se a janela tiver 144x144 pixels, um retângulo de 10x10 pixels será dimensionado para 20x20 pixels. Se você insistir em usar um scaleMode que não seja noScale para o palco de uma janela, poderá compensar definindo o fator de escala de qualquer objeto de exibição da janela na proporção de 72 pixels para a largura e a altura atuais do palco. Por exemplo, o código a seguir calcula o fator de escala necessário para um objeto de exibição denominado client: if(newWindow.stage.scaleMode != StageScaleMode.NO_SCALE){ client.scaleX = 72/newWindow.stage.stageWidth; client.scaleY = 72/newWindow.stage.stageHeight; } Nota: As janelas Flex e HTML definem automaticamente o palco scaleMode como noScale. Alterar o scaleMode perturba os mecanismos automáticos de layout usados nesses tipos de janelas.
Trabalho com o modo de tela cheiaO 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; 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 PlayerPara 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. Tamanho do palco e dimensionamento em tela cheiaAs 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 a plataforma Adobe Flash. 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 cheiaQuando 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:
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. Dimensionamento em hardware no modo de tela cheiaVocê 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. ![]() 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 GPUO 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. |
![]() |