El paquete flash.system contiene una función a nivel de paquete,
fscommand()
, que facilita la comunicación entre un archivo SWF y su contenedor.Función | Definido por | ||
---|---|---|---|
Permite que el archivo SWF se comunique con Flash Player o con el programa que lo aloja, por ejemplo, un navegador web. | flash.system |
fscommand | () | función |
public function fscommand(command:String, args:String = ""):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Permite que el archivo SWF se comunique con Flash Player o con el programa que lo aloja, por ejemplo, un navegador web. También es posible utilizar la función fscommand()
para pasar mensajes a Director o a Visual Basic, Visual C++ y otros programas que puedan alojar controles ActiveX.
La función fscommand()
permite que un archivo SWF se comunique con un script en una página web. Sin embargo, el acceso de script está controlado por el parámetro allowScriptAccess
de la página web. (Este atributo se define en el código HTML que incorpora el archivo SWF, por ejemplo, en la etiqueta PARAM
para Internet Explorer o la etiqueta EMBED
para Netscape.)
- Cuando
allowScriptAccess
se establece como"sameDomain"
(valor predeterminado), sólo es posible acceder a los scripts de archivos SWF que están en el mismo dominio que la página web. - Cuando
allowScriptAccess
se establece como"always"
, el archivo SWF se puede comunicar con la página HTML que lo incorpora, incluso cuando su dominio y el de la página son diferentes. - Cuando
allowScriptAccess
se establece como"never"
, el archivo SWF no se puede comunicar con ninguna página HTML. Se debe tener en cuenta que este valor está en desuso y no se recomienda utilizarlo. Realmente no es necesario si desde el propio dominio no se sirven archivos SWF que no sean de confianza. Si es preciso servir archivos SWF que no sean de confianza, Adobe recomienda crear un subdominio independiente y colocar en él todo ese contenido.
Asimismo, se puede impedir que un archivo SWF utilice este método si define el parámetro allowNetworking
de las etiquetas object
y embed
de la página HTML que aloja el contenido SWF.
La función fscommand()
no se admite si el archivo SWF que realiza la llamada está en el entorno limitado local-con-sistema-de-archivos o local-con-red y la página HTML que lo contiene está en un entorno limitado que no es de confianza.
Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.
Sintaxis 1: Para utilizar fscommand()
para enviar un mensaje a Flash Player, debe utilizar comandos y parámetros predefinidos. La tabla siguiente muestra los valores que puede especificar para los parámetros fscommand()
y command
de la función args
. Estos valores controlan archivos SWF que se reproducen en Flash Player, incluidos los proyectores. (Un proyector es un archivo SWF que se guarda en un formato que puede ejecutarse como aplicación independiente, es decir, sin Flash Player.)
Comando | Parámetro (args) | Objetivo |
---|---|---|
quit | None | Cierra el proyector. |
fullscreen | true o false | Si se especifica true , Flash Player se establece en modo de pantalla completa. Si se especifica false , el reproductor vuelve a la vista de menú normal. |
allowscale | true o false | Si se especifica false , el reproductor se establece de forma que el archivo SWF se dibuje siempre con su tamaño original y nunca se cambie su escala. Si se especifica true , se obliga al archivo SWF a cambiar su escala al 100% del reproductor. |
showmenu | true o false | Si se especifica true , se activa el conjunto completo de elementos de menú contextual. Si se especifica false , se atenúan todos los elementos de menú contextual excepto Configuración y Acerca de Flash Player. |
exec | Ruta de acceso a la aplicación | Ejecuta una aplicación desde el proyector. |
trapallkeys | true o false | Si se especifica true , se envían todos los eventos clave, incluidas las teclas de aceleración, al controlador onClipEvent(keyDown/keyUp) en Flash Player. |
No todos los comandos de la tabla están disponibles en todas las aplicaciones:
- Ninguno de los comandos está disponible en reproductores web.
- Todos los comandos están disponibles en las aplicaciones de proyector autónomo.
- Las aplicaciones de AIR deben utilizar la clase flash.desktop.NativeApplication para funciones parecidas, como
NativeApplication.nativeApplication.exit()
en lugar defscommand( "quit")
. - Sólo
allowscale
yexec
están disponibles en reproductores de películas de prueba.
El comando exec
puede contener únicamente los caracteres A-Z, a-z, 0-9, punto (.) y subrayado (_). El comando exec
se ejecuta únicamente en el subdirectorio fscommand. Dicho de otro modo, si se utiliza el comando exec
para llamar a una aplicación, ésta debe residir en un subdirectorio denominado fscommand. El comando exec
sólo funciona desde un archivo de proyector de Flash.
Sintaxis 2: Para utilizar fscommand()
con el fin de enviar un mensaje a un lenguaje de creación de scripts como JavaScript en un navegador web, puede pasar los dos parámetros que desee en los parámetros command
y args
. Estos parámetros pueden ser cadenas o expresiones y se utilizan en una función de JavaScript que controla o captura la función fscommand()
.
En un navegador web, fscommand()
llama a la función JavaScript moviename_DoFScommand
, que reside en la página web que contiene el archivo SWF. Para moviename
, utilice el nombre del objeto de Flash que utilizó para el atributo NAME
de la etiqueta EMBED
o la propiedad ID de la etiqueta OBJECT
. Si asigna al archivo SWF el nombre "myMovie", se llamará a la función de JavaScript myMovie_DoFScommand
.
En la página web que contiene el archivo SWF, defina el atributo allowScriptAccess
para permitir o denegar al archivo SWF el acceso a la página web, tal y como se describe anteriormente. (Este atributo se define en el código HTML que incorpora el archivo SWF, por ejemplo, en la etiqueta PARAM
para Internet Explorer o la etiqueta EMBED
para Netscape.)
En Flash Player 10 y versiones posteriores ejecutadas en un navegador, utilizar este método en programación para abrir una ventana emergente puede no producir los resultados deseados. Algunos navegadores (y configuraciones de navegador) bloquean las ventanas emergentes en todo momento; no es posible, por ello, garantizar que aparezcan las ventanas emergentes. No obstante, para intentar garantizar un comportamiento correcto, utilice este método para abrir ventanas emergentes únicamente en código que se ejecute como resultado directo de la acción del usuario (por ejemplo, en un controlador de eventos de clics del ratón o de pulsaciones de tecla).
Sintaxis 3: La función fscommand()
puede enviar mensajes a Director (Macromedia Director de Adobe). Lingo (lenguaje de creación de scripts de Director) interpreta estos mensajes como cadenas, eventos o código Lingo ejecutable. Si el mensaje es una cadena o un evento, debe escribir el código Lingo para recibir el mensaje de la función fscommand()
y llevar a cabo una acción en Director. Para más información, consulte el Centro de servicio técnico de Director en www.adobe.com/support/director/.
Sintaxis 4: En VisualBasic, Visual C++ y otros programas que pueden alojar controles ActiveX, la función fscommand()
envía un evento VB con dos cadenas que pueden gestionarse en el lenguaje de programación del entorno. Para más información, utilice las palabras clave "Flash method" (método de Flash) para realizar búsquedas en el Centro de soporte Flash en www.adobe.com/es/support/flash/.
Nota: la clase ExternalInterface ofrece mejor funcionalidad para la comunicación entre JavaScript y ActionScript (Sintaxis 2) y entre ActionScript y VisualBasic, Visual C++ u otros programas que puedan incluir controles ActiveX (Sintaxis 4). Debe seguir usando fscommand()
para enviar mensajes a Flash Player (Sintaxis 1) y Director (Sintaxis 3).
Parámetros
command:String — Cadena que se pasa a la aplicación host para cualquier uso o comando que se transmite a Flash Player.
| |
args:String (default = " ") — Cadena que se pasa a la aplicación host para cualquier uso o valor que se transmite a Flash Player.
|
Emite
Error — Si no se llama a la función como respuesta a una acción del usuario, por ejemplo, un evento de ratón o de pulsación de tecla.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
fscommand()
para que Flash Player se establezca en modo de pantalla completa y no permita la escala. Posteriormente al escenario se añade un cuadro naranja utilizando draw()
. En draw()
, se añade un detector de eventos click
denominado clickHandler()
, que responde a eventos click
, haciendo que Flash Player salga a través de otra llamada a fscommand().
Nota: este ejemplo se debe ejecutar en la versión autónoma de Flash Player y no en un navegador 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); } } }
Tue Jun 12 2018, 02:28 PM Z