AS3 – Recoger parámetros externos con loaderInfo
Publicado por Iván Gajate el 20 de septiembre de 2013 en AS3, Flash
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> |
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++; } } } } } |