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.Função | Definido por | ||
---|---|---|---|
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 |
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).
Comando | Parâmetro (args) | Finalidade |
---|---|---|
quit | Nenhum | Fecha o projetor. |
fullscreen | true ou false | Especificar true define o Flash Player como modo de tela cheia. Especificar false retorna o player à exibição de menu normal. |
allowscale | true ou false | Especificar 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. |
showmenu | true ou false | Especificar 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. |
exec | Caminho para o aplicativo | Executa um aplicativo de dentro do projetor. |
trapallkeys | true ou false | Especificar 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 defscommand("quit")
. - Somente
allowscale
eexec
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 )
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); } } }
Wed Jun 13 2018, 11:27 AM Z