Referência do ActionScript® 3.0 para Adobe® Flash® Platform
Início  |  Ocultar listas de Pacotes e Classes |  Pacotes  |  Classes  |  Novidades  |  Índice  |  Apêndices  |  Por que inglês?
Filtros: Recuperando dados do servidor...
Recuperando dados do servidor...
 

Pacote flash.system 


O pacote flash.system contém uma função de nível de pacote, fscommand(), que facilita a comunicação entre um arquivo SWF e seu recipiente.
Métodos públicos
 FunçãoDefinido por
  
fscommand(command:String, args:String = ""):void
Permite que o arquivo SWF se comunique com o Flash Player ou com o programa que hospeda o Flash Player, por exemplo, um navegador da Web.
flash.system
Detalhe da função

fscommand

()função
public function fscommand(command:String, args:String = ""):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Permite que o arquivo SWF se comunique com o Flash Player ou com o programa que hospeda o Flash Player, por exemplo, um navegador da Web. Você também pode usar a função fscommand() para transmitir mensagens para o Director ou para o Visual Basic, Visual C++ e outros programas que podem hospedar controles ActiveX.

A função fscommand() permite que o arquivo SWF se comunique com um script em uma página da Web. No entanto, o acesso do script é controlado pela configuração allowScriptAccess da página da Web. (Você define esse atributo no código HTML que incorpora o arquivo SWF, por exemplo, na marca PARAM do Internet Explorer ou na marca EMBED do Netscape.)

  • Quando allowScriptAccess for definido como "sameDomain" (padrão), será permitido apenas o script de arquivos SWF que estiverem no mesmo domínio da página da Web.
  • Quando allowScriptAccess for definido como "always", o arquivo SWF poderá comunicar-se com a página HTML na qual ele está incorporado, mesmo quando o arquivo SWF for de um domínio diferente da página HTML.
  • Quando o allowScriptAccess for definido como "never", um arquivo SWF não poderá comunicar-se com nenhuma página HTML. Observe que o uso desse valor é obsoleto e não é recomendado e não será necessário se você não fornecer arquivos SWF não confiáveis em seu próprio domínio. Se for necessário servir arquivos SWF não confiáveis, a Adobe recomenda que seja criado um subdomínio diferente e seja colocado nele todo o conteúdo não confiável.

Você pode impedir o arquivo SWF de usar esse método configurando o parâmetro allowNetworking das marcas object e embed na página HTML com o conteúdo SWF.

A função fscommand() não será permitida se o arquivo SWF de chamada estiver na caixa de proteção do sistema de arquivos local ou de rede local e a página que contém o HTML estiver em uma caixa de proteção não confiável.

Para obter mais informações relacionadas à segurança, consulte o tópico do Centro dos desenvolvedores do Flash Player Security.

Uso 1: Para usar o fscommand() para enviar uma mensagem para o Flash Player, você deve usar comandos e parâmetros predefinidos. A tabela a seguir mostra os valores que você pode especificar para os parâmetros command e args da função fscommand(). Esses valores controlam os arquivos SWF em execução no Flash Player, incluindo projetores. (Um projetor é um arquivo SWF salvo em um formato que pode ser executado como aplicativo independente, ou seja, sem o Flash Player).

ComandoParâmetro (args)Finalidade
quitNenhumFecha o projetor.
fullscreentrue ou falseEspecificar true define o Flash Player como modo de tela cheia. Especificar false retorna o player à exibição de menu normal.
allowscaletrue ou falseEspecificar false define o player de forma que o arquivo SWF seja sempre desenhado no tamanho original e nunca dimensionado. Especificar true força o redimensionamento do arquivo SWF em 100% do player.
showmenutrue ou falseEspecificar true ativa o conjunto completo de itens do menu de contexto. Especificar false oculta todos os itens do menu de contexto, exceto Sobre o Flash Player e Configurações.
execCaminho para o aplicativo Executa um aplicativo de dentro do projetor.
trapallkeystrue ou falseEspecificar true envia todos os eventos principais, incluindo chaves de acelerador, para o manipulador onClipEvent(keyDown/keyUp) no Flash Player.

Nem todos os comandos relacionados na tabela estão disponíveis em todos os aplicativos:

  • Nenhum dos comandos estão disponíveis nos players da Web.
  • Todos os comandos ficam disponíveis em aplicativos de projetor independentes.
  • Os aplicativos AIR devem usar a classe flash.desktop.NativeApplication para obter funções semelhantes, como NativeApplication.nativeApplication.exit() em vez de fscommand("quit").
  • Somente allowscale e exec estão disponíveis nos players de teste de filme.

O comando exec pode conter apenas caracteres A-Z, a-z, 0-9, ponto (.) e sublinhado (_). O comando exec só é executado no subdiretório fscommand. Ou seja, se você usar o comando exec para chamar um aplicativo, o aplicativo deve residir em um subdiretório com o nome fscommand. O comando exec só trabalha de dentro de um arquivo projetor do Flash.

Uso 2: Para usar o fscommand() para enviar uma mensagem para uma linguagem de script como o JavaScript em um navegador da Web, você pode transmitir quaisquer dois parâmetros dos parâmetros command e args. Esses parâmetros podem ser strings ou expressões e são usados em uma função JavaScript que manipula ou detecta a função fscommand().

Em um navegador da Web, o fscommand() chama a função JavaScript moviename_DoFScommand, que reside na página da Web que contém o arquivo SWF. Em moviename, forneça o nome do objeto do Flash usado no atributo NAME da marca EMBED ou a propriedade de ID da marca OBJECT. Se você atribuir ao arquivo SWF o nome "myMovie", a função JavaScript myMovie_DoFScommand será chamada.

Na página da Web que contém o arquivo SWF, defina o atributo allowScriptAccess para permitir ou negar a possibilidade de o arquivo SWF acessar a página da Web, conforme descrito anteriormente. (Você define esse atributo no código HTML que incorpora o arquivo SWF, por exemplo, na marca PARAM do Internet Explorer ou na marca EMBED do Netscape.)

No Flash Player 10 e posterior em execução no navegador, o uso desse método por programação para abrir uma janela pop-up pode não ser bem-sucedido. Vários navegadores (e configurações de navegador) podem bloquear janelas pop-up a qualquer momento; não é possível garantir que todas as janelas pop-up sejam exibidas. No entanto, para ter boa chance de sucesso, use esse método para abrir uma janela pop-up somente no código que seja executado como um resultado direto da ação do usuário (por exemplo, em um manipulador de eventos para um evento de clique de mouse ou de pressionamento de tecla.)

Uso 3: A função fscommand() pode enviar mensagens para o Director (Macromedia Director da Adobe). Essas mensagens são interpretadas pelo Lingo (linguagem de script do Director) como strings, eventos ou código executável do Lingo. Se a mensagem for uma string ou um evento, você deverá gravar o código Lingo para receber a mensagem da função fscommand() e realizar uma ação no Director. Para obter mais informações, consulte Director Support Center (Central de suporte do Director) emwww.adobe.com/support/director/.

Uso 4: No VisualBasic, Visual C++ e outros programas que podem hospedar controles ActiveX, o fscommand() envia um evento VB com duas strings que podem ser manipuladas na linguagem de programação do ambiente. Para obter mais informações, use as palavras-chave "Método Flash" para procurar o Flash Support Center (Central de suporte do Flash) em www.adobe.com/br/support/flash/.

Observação: A classe ExternalInterface oferece melhor funcionalidade de comunicação entre JavaScript e ActionScript (Uso 2) e entre ActionScript e VisualBasic, Visual C++ ou outros programas que podem hospedar os controles ActiveX (Uso 4). Você deve continuar a usar o fscommand() para enviar mensagens para o Flash Player (Uso 1) e Director (Uso 3).

Parâmetros

command:String — Uma string transmitida ao aplicativo host para um uso qualquer ou um comando transmitido para o Flash Player.
 
args:String (default = "") — Uma string transmitida ao aplicativo host para um uso qualquer ou um valor transmitido para o Flash Player.


Lança
Error — Se a função não for chamada em resposta a uma ação do usuário, por exemplo, um evento de mouse ou de pressionamento de tecla.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

O exemplo a seguir mostra como o fscommand() pode ser usado para fazer com que o Flash Player vá para o modo de tela cheia sem permitir dimensionamento. Em seguida, uma caixa laranja é adicionada ao palco usando o draw(). Em draw(), um ouvinte de evento click é adicionado com o nome clickHandler(), que responde a eventos click direcionando o Flash Player a sair usando outra chamada para o fscommand().

Observação: este exemplo deve ser executado no Flash Player independente e não em um navegador da Web.

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.system.fscommand;
    import flash.events.MouseEvent;

    public class FSCommandExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 100;

        public function FSCommandExample() {
            fscommand("fullscreen", "true");
            fscommand("allowscale", "false");
            draw();
        }

        private function clickHandler(event:MouseEvent):void {
            fscommand("quit");
            trace("clickHandler");
        }

        private function draw():void {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            child.buttonMode = true;
            addEventListener(MouseEvent.CLICK, clickHandler);

            var label:TextField = new TextField();
            label.text = "quit";
            label.selectable = false;
            label.mouseEnabled = false;
            child.addChild(label);

            addChild(child);
        }
    }
}

[ X ]Por que inglês?
O conteúdo na Referência do ActionScript 3.0 aparece em inglês

Nem todas as partes da Referência do ActionScript 3.0 estão traduzidas em todos os idiomas. Quando um elemento de um idioma não está traduzido, ele é exibido em inglês. Por exemplo, a classe ga.controls.HelpBox não está traduzida em nenhum idioma. Por isso, na versão da referência em português do Brasil, a classe ga.controls.HelpBox é exibida em inglês.