Cómo pasar variables a archivos SWF para Flash Professional

Introducción

El parámetro FlashVars de la etiqueta HTML <OBJECT> envía variables al nivel superior de un archivo SWF cuando se carga en un navegador web. La etiqueta <OBJECT> se usa para agregar archivos SWF a páginas HTML. También se puede usar la etiqueta <EMBED>, pero es antigua y se ha vuelto obsoleta.

Para obtener información básica sobre el uso de la etiqueta <OBJECT>, consulte Sintaxis de la etiqueta OBJECT.

Nota: la función FlashVars requiere Flash Player 6 o posterior.

Usar FlashVars para pasar valores a un archivo SWF

Se puede usar un parámetro opcional llamado "FlashVars" para pasar variables al nivel de raíz del archivo SWF. Coloque este parámetro dentro de la etiqueta <OBJECT> o la etiqueta antigua <EMBED>.Todas estas variables se pasan entonces al archivo SWF antes de la reproducción del primer fotograma del archivo.

Puede pasar la cantidad de variables que desee con los nombres de variables que desee.Todos los navegadores admiten cadenas FlashVars de hasta 64 KB (65535 bytes) de longitud.

El formato de la propiedad FlashVars es una cadena compuesta por un conjunto de combinaciones de nombre=valor separadas por el carácter '&'.

Puede incluir caracteres especiales o no imprimibles utilizando un carácter '%' seguido por el valor hexadecimal de dos dígitos pertinente. Un espacio en blanco sencillo se puede representar mediante el signo '+'.Para obtener más información sobre caracteres especiales para la codificación de URL, consulteCodificación de URL (Wikipedia).

El ejemplo siguiente de código HTML pasa dos variables. La primera tiene el nombre "myVariable" y un valor "Hello World". La segunda tiene el nombre "mySecondVariable" y un valor "Goodbye".

Ejemplo de etiqueta Object

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle">
    <param name="movie" value="myFlashMovie.swf" />
    <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="myFlashMovie.swf" width="550" height="400">
        <param name="movie" value="myFlashMovie.swf" />
        <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--<![endif]-->
        <a href="http://www.adobe.com/go/getflash">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
        </a>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
</object>

 

Ejemplo de etiqueta Embed

También se puede usar la etiqueta <EMBED> para agregar un archivo SWF a una página web, pero es una etiqueta antigua y se ha vuelto obsoleta.

<embed src="myFlashMovie.swf" 
    quality="high" 
    bgcolor="#ffffff" 
    width="550" 
    height="400" 
    name="myFlashMovie"     FlashVars="myVariable=Hello%20World&mySecondVariable=Goodbye"
    align="middle" 
    allowScriptAccess="sameDomain" 
    allowFullScreen="false" 
    type="application/x-shockwave-flash" 
    pluginspage="http://www.adobe.com/go/getflash" 
/>

El navegador codifica la cadena FlashVars del mismo modo que el resto de la página HTML. Internet Explorer en Windows proporciona codificación compatible con UTF-16. Otros navegadores proporcionan codificación compatible con UTF-8.

Acceder a las variables en el código ActionScript 3.0 en un archivo SWF

Cuando haya pasado variables al archivo SWF desde el HTML, el archivo SWF requerirá el uso de dichas variables.

Utilice el objeto ActionScript 3.0 LoaderInfo para acceder a las variables FlashVars.

Ejemplo sencillo

El ejemplo de código de abajo consulta con el objeto LoaderInfo para acceder a la variable con nombre myVariable pasada al archivo SWF en el parámetro FlashVars. Entonces establece en el valor de cadena de la variable el texto de un campo de texto en el escenario.

// by querying the LoaderInfo object, set the value of paramObj to the 
// to the value of the variable named myVariable passed from FlashVArs in the HTML
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;

// set the text of the text instance named text1. Use the toString() method
// to convert the value from an object to a string so it can be used in the text field
text1.text = paramObj.toString()

Puede descargar un archivo de muestra FLA, SWF y HTML que muestra la utilización del código anterior.

Ejemplo avanzado

El ejemplo de código de abajo hace lo siguiente:

  • Crea una instancia de TextField en el escenario (con el nombre tf).
  • Utiliza el objeto LoaderInfo para extraer las variables del parámetro FlashVars.
  • Usa un bucle for..in para procesar una iteración en cada una de las variables pasadas.
  • Muestra los nombres y valores de las variables en el campo de texto.
// AS3
var tf:TextField = new TextField();       // create a TextField names tf
tf.autoSize = TextFieldAutoSize.LEFT;
tf.border = true;
addChild(tf);                             // add the TextField to the DisplayList so that it appears on the Stage

tf.appendText("params:" + "\n");
try 
{
    var keyStr:String;
    var valueStr:String;
    var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;   //set the paramObj variable to the parameters property of the LoaderInfo object
    for (keyStr in paramObj) 
    {
        valueStr = String(paramObj[keyStr]);
        tf.appendText("\t" + keyStr + ":\t" + valueStr + "\n");  // add each variable name and value to the TextField named tf
    }
} 

catch (error:Error) 
{
    tf.appendText(error.toString());
}

Acceder a las variables en el código ActionScript 2.0 en un archivo SWF

En ActionScript 2.0, se puede acceder a las variables FlashVars directamente, como si se hubieran declarado en el mismo archivo SWF.

Este ejemplo establece la propiedad de texto de una instancia de texto dinámico con el nombre text1 en el valor de la variable con el nombre myVariable. myVariable se declara en el parámetro FlashVars.

// AS2
text1.text = myVariable;

Puede descargar un archivo de muestra FLA, SWF y HTML que muestra la utilización del código AS2 anterior.

Técnicas adicionales

Las variables también se pueden pasar a los archivos SWF anexándolas a la URL de los archivos SWF especificados en las etiquetas OBJECT y EMBED. En esta técnica, la información adicional anexada a la URL recibe el nombre de cadena de consulta.Este método tiene limitaciones si la variables se necesitan inmediatamente al cargarse el archivo SWF. Cuando se utiliza este método, es necesario descargar y reproducir el archivo SWF antes de poder solicitar del servidor grandes cantidades de datos.

Palabras clave: pasar; parámetros; cadena de consulta; objeto; incrustar; tn_16417

 Adobe

Obtén ayuda de forma más rápida y sencilla

¿Nuevo usuario?