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 |
| Versión del reproductor: | 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. (Esta opción se define en el código HTML que se incluye en el archivo SWF, por ejemplo, en la etiqueta PARAM para Internet Explorer o la etiqueta EMBED para Netscape.) Cuando allowScriptAccess se define como "never", un archivo SWF no puede acceder a scripts de páginas Web. Con Flash Player 7 y versiones posteriores, cuando allowScriptAccess está definido como "always", los archivos SWF pueden acceder siempre a scripts de páginas Web. Cuando allowScriptAccess está definido como "sameDomain", sólo se admite la creación de scripts en archivos SWF que pertenecen al mismo dominio que la página Web; en versiones anteriores de Flash Player se admitía siempre. Si allowScriptAccess no está especificado como una página HTML, el atributo se define de forma predeterminada como "sameDomain" para archivos SWF de la versión 8 y posterior, y como "always" para archivos SWF de la versión 7 y anterior.
Asimismo, puede evitar que un archivo SWF utilice este método, estableciendo el parámetro allowNetworking de las etiquetas object y embed en la página HTML que incluye el contenido de SWF.
Para obtener más información relacionada con la seguridad, consulte lo siguiente:
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:
allowscale y exec 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. (Esta opción se define en el código HTML que se incluye en el archivo SWF, por ejemplo, en la etiqueta PARAM para Internet Explorer o la etiqueta EMBED para Netscape.) Si allowScriptAccess se define como "never", los scripts de salida siempre fallan. Si allowScriptAccess se define como "always", los scripts de salida siempre funcionan. Cuando se establece como "sameDomain", sólo es posible acceder a los scripts de archivos SWF que están en el mismo dominio que la página Web. Si no se especifica allowScriptAccess en una página Web, se definirá de forma predeterminada como "sameDomain" para Flash Player 8, y como "always" para las versiones anteriores de Flash Player.
Cuando utilice esta función, tenga en cuenta el modelo de seguridad de Flash Player. Para Flash Player 9, la función fscommand() no se admite si el archivo SWF que realiza la llamada está en la libre configuración local-con-sistema-de-archivos o local-con-red y la página HTML que lo contiene está en una libre configuración que no es de confianza. Para más información, consulte el documento técnico sobre la seguridad de Flash Player 9 en http://www.adobe.com/go/fp9_0_security_es.
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/support/flash/.
Nota: si publica para Flash Player 8 o una versión posterior, la clase ExternalInterface ofrece mejor funcionalidad para comunicaciones 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.
|
Véase también
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);
}
}
}
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/system/package.html