Comunidad de diseño web y desarrollo en internet online

Parametros entrada AS3

Citar            
MensajeEscrito el 22 Mar 2010 09:54 am
Hola, querría saber como le paso unos parametros a un flash y como los recepcion en el mismo flash en acionscript 3

Yo en AS2 lo hacía:
en el html ponía
<param name="FlashVars" VALUE="valor1=11 &valor2=12"/>

y en el flash tomaba los datos poniendo tomardatos1 = _level0.valor1;

pero no me funciona en AS3

Un saludo y gracias

Por siropa

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Mar 2010 10:23 am
Se hace a través de la propiedad "parameters" del loaderInfo del propio .swf, puff

Código ActionScript :

var paramObj:Object = LoaderInfo(this.loaderInfo).parameters
trace(paramObj.valor1)
trace(paramObj.valor2)

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Mar 2010 11:29 am
Hola, yo estoy poniendo:

en el html ponía
<param name="FlashVars" VALUE="valor1=11 &valor2=12"/>
y en el flash
var paramObj:Object = LoaderInfo(this.loaderInfo).parameters
const variable1:String = paramObj.valor1;
const variable2:String =paramObj.valor2;

y da el error:
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at archivo_fla::MainTimeline()

Por siropa

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Mar 2010 04:24 pm
El "dato" lo recogí de esta página y a mí me funciona.
fijaté que, cuando tenemos un .swf embebido en un HTML, DEBEMOS tener además del Object la etiqueta embed. Y en ambas deben estar el FlashVar.
En un ejemplo típico tendríamos

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
width="550" height="400" align="middle" id="main">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="main.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="FlashVars" value="one=1&two=2" />
<embed src="prueba87.swf" width="550" height="400" autostart="false" quality="high"
bgcolor="#ffffff" FlashVars="one=1&two=2"
name="main" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Mar 2010 05:26 pm
es q no es this es root
var paramObj:Object = LoaderInfo(root.loaderInfo).parameters
const variable1:String = paramObj.valor1;
const variable2:String =paramObj.valor2;

prueba a ver si te funciona

Por gcastilo_2009

16 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Mar 2010 05:30 pm
es as amigo
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
const variable1:String = paramObj.valor1;
const variable2:String =paramObj.valor2;
prueba a ver si te funciona

Por gcastilo_2009

16 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Mar 2010 11:23 am
Hola otra vez, lo he estado probando y me sigue dando error:

código html:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="800" height="550" id="Mapa Jaen_Comarcas_12" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="Prueba_12.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="FlashVars" VALUE="comarca=1&municipio=0">
<embed src="Prueba_12.swf" FlashVars="comarca=1&municipio=0" quality="high" bgcolor="#ffffff" width="800" height="550" name="Prueba_12" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer_es" />
</object>

código en flash:
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
const comarcaDeshabilitar:String=paramObj[comarca];
const municipioSeleccionado:String=paramObj[municipio];

error que da:
Acceso a una propiedad comarca no definida.
Acceso a una propiedad municipio no definida.

¿por qué puede ser?

Un saludo

Por siropa

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Mar 2010 12:37 pm
es, o con comillas o sin corchetes

Código ActionScript :

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
const comarcaDeshabilitar:String=paramObj["comarca"];
const municipioSeleccionado:String=paramObj["municipio"];
//ó
const comarcaDeshabilitar:String=paramObj.comarca;
const municipioSeleccionado:String=paramObj.municipio;

Aunque no estoy muy seguro de si, en lugar de "const" deberías usar "var"
!OJO¡ te falta cerrar la etiqueta de <param name="FlashVars" VALUE="comarca=1&municipio=0"> (debe acabar en "/>")

<param name="FlashVars" VALUE="comarca=1&municipio=0"/>

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Mar 2010 12:56 pm
Hola, he puesto
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;

var var1:String = paramObj["comarca"];
var var2:String = paramObj.comarca;

y he cerrado el tag <param name="FlashVars" VALUE="comarca=1&municipio=0"/>

y para probarlo escribo en pantalla el contenido de las 2 variables como texto dinamico y me devuelve null

¿por qué puede ser?, seguramente sea una tonteria pero es que no encuentro el error

Un saludo y gracias

Por siropa

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Mar 2010 03:04 pm
Tienes que abrir el .HTML en el navegador.
He hecho una prueba, con este código en un "Main.as" -La "Clase de documento" del .fla será Main" (es que no tengo Flash a mano)

Código ActionScript :

package 
{
   import flash.display.Sprite;
   import flash.display.LoaderInfo;
   import flash.text.TextField;
   import flash.text.TextFieldAutoSize;
   public class Main extends Sprite 
   {
      public var circulo:Circulos = new Circulos();
      public function Main():void 
      {
         var paramObj:Object = LoaderInfo(this.loaderInfo).parameters;
         var comarcaDeshabilitar:String=paramObj.comarca;
         var municipioSeleccionado:String = paramObj["municipio"];
         var label:TextField = new TextField();
          label.autoSize = TextFieldAutoSize.LEFT;
            label.background = true;
            label.border = true;

            addChild(label);
         label.text = comarcaDeshabilitar+"*"+municipioSeleccionado;      }
   }
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Mar 2010 05:18 pm
Hola, ya he encontrado el error, resulta que yo la prueba la hacía añadiendo al archivo html que genera flash automaticamente los parametros con FlashVars y lo que pasaba es que en estos html hay un código que es el siguiente:

<script language="JavaScript" type="text/javascript">
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
'width', '800',
'height', '550',
'src', 'Mapa Jaen_Comarcas_12',
'quality', 'high',
'pluginspage', 'http://www.adobe.com/go/getflashplayer_es',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'Mapa Jaen_Comarcas_12',
'bgcolor', '#ffffff',
'name', 'Mapa Jaen_Comarcas_12',
'menu', 'true',
'allowFullScreen', 'false',
'allowScriptAccess','sameDomain',
'movie', 'Mapa Jaen_Comarcas_12',
'salign', ''
); //end AC code
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="800" height="550" id="Mapa Jaen_Comarcas_12" align="middle" VIEWASTEXT>
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="Mapa Jaen_Comarcas_12.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />

<param name="FlashVars" VALUE="comarca=1&municipio=0"/>

<embed src="Mapa Jaen_Comarcas_12.swf" FlashVars="comarca=1&municipio=0" quality="high" bgcolor="#ffffff" width="800" height="550" name="Mapa Jaen_Comarcas_12" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>

para que funcione lo unico que hay que hacer es dejar solo el trozo de codigo de objeto flash, es decir, quitar lo que he puesto en negrita.

Un saludo y muchas gracias ya que tambien había que poner la llamada como me la comentaste.

Por siropa

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Mar 2010 05:36 pm
El último comentario :)
La función javaScript AC_FL_RunContent() tiene un parámetro que son el FlashVars. ¿qué quiero decir? que le tienes que añadir un último parámetro a esa función (bueno un par)
[code]
<script language="JavaScript" type="text/javascript">
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
....
'salign', '',
'flashVars','comarca=1&municipio=0'
);
[/as]

No tengo Flash a mano, pero mira en las opciones de generar el HTML, porque, casi seguro que hay una opción para añadir el FlashVars

NOTA:El motivo de usar la función AC_FL_RunContent (o usar otras rutinas como SWFObject) es para que IIE no de un aviso de que se requiere instalar un ActiveX. Cosa que suele asustar.

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Mar 2010 05:55 pm
Hola, es cierto lo he probado y si que funciona

gracias

Por siropa

6 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.