Algo muy típico es pasarle parámetros a Flash desde el html que lo contiene para que se inicie la carga según esos parámetros, por ejemplo para pasarle un idioma inicial, o alguna contraseña generada en el servidor.
En nuestro html sería algo así (si utilizamos swfobject que deberíamos 🙂
<script type="text/javascript">
var flashvars = {};
// Inyecto tantas variables como quiera
flashvars.foo = "foo";
var params = {menu:"false", scale:"noscale", bgcolor:"FFFFFF", allowScriptAccess:"always"};
var attributes = {};
//swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes)
swfobject.embedSWF("miflash.swf", "flashdiv", "1000", "600", "10.0.0", "playerProductInstall.swf", flashvars, params, attributes);
</script> |
<script type="text/javascript">
var flashvars = {};
// Inyecto tantas variables como quiera
flashvars.foo = "foo";
var params = {menu:"false", scale:"noscale", bgcolor:"FFFFFF", allowScriptAccess:"always"};
var attributes = {};
//swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes)
swfobject.embedSWF("miflash.swf", "flashdiv", "1000", "600", "10.0.0", "playerProductInstall.swf", flashvars, params, attributes);
</script>
Desde nuestra peli de flash, podemos recoger esa variable foo utilizando loaderInfo:
package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.*;
public class Main extends MovieClip {
public function Main() {
this.addEventListener(Event.ADDED_TO_STAGE, added); // Me aseguro que esta addedToStage
}
private function added(e:Event):void{
this.removeEventListener(Event.ADDED_TO_STAGE, added);
if (loaderInfo != null){
var parametros:Object = loaderInfo.parameters;
// Para evitar que genere error en caso que no haya variables creamos un contador
var cont:int = 0;
for (var param:String in parametros){
trace(parametros[param]);
cont++;
}
}
}
}
} |
package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.*;
public class Main extends MovieClip {
public function Main() {
this.addEventListener(Event.ADDED_TO_STAGE, added); // Me aseguro que esta addedToStage
}
private function added(e:Event):void{
this.removeEventListener(Event.ADDED_TO_STAGE, added);
if (loaderInfo != null){
var parametros:Object = loaderInfo.parameters;
// Para evitar que genere error en caso que no haya variables creamos un contador
var cont:int = 0;
for (var param:String in parametros){
trace(parametros[param]);
cont++;
}
}
}
}
}