Comunidad de diseño web y desarrollo en internet online

pasar variable desde html hasta la clase de as3

Citar            
MensajeEscrito el 19 Mar 2008 02:08 pm
Hola, tengo la siguiente situacion
un html llamado pelicula.html
Pelicula html llama a Main.swf?variable=valor

PERDON SE ME ENVIO EL ANTERIOR Y NO ENCUENTRO COMO EDITAR PARA CORREGIR POR ESO LO ENVIO DE NUEVO
Main.swf que utiliza la clase de documento: Main.as
Pero no logro hacerle llegar la variable
Lo ejecuto desde el navegador y recibe vacio

Asi es Main as
package org.mio
{
public class Main extends MovieClip
{
public var path:String;
public var basepath:String;
public function Main()
{
if(basepath==null){
basepath="";
path="images/trekking/";
}
mensaje_txt.text=basepath;

}
}

Gracias por cualquier orientación!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2008 03:04 pm
Los flashvars aparecen como variable global en root, prueba root.mivariable

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Mar 2008 07:20 pm
Hola Jorge!
Ya tengo gran mareo a ver si me podes enderezar

Yo en Main as defino como public
public var path:String;
public var basepath:String;


Luego intente hacer como tu dijiste que probara
if(root.basepath==null){
root.basepath="esnulo";
root.path="images/trekking/";
}
mensaje_txt.text=root.basepath;


Y me sale este error.
"Acceso a propiedad posibilemente no definida mediante una referencia con tipo estatico..."

Ahora bien,lo que hago en el html cuando hago el embed de flash es poner
movie.swf?basepath=valor

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2008 09:02 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Mar 2008 09:24 pm
Igual no entiendo...
donde defino las variables en Main.as? Como privadas o publicas?
aays no entiendo...
ayudame!
No recibo na! : (
Gracias por tu tiempo

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 Mar 2008 04:03 am
Una clase no puede hacer referencia a root a menos que haya sido agregada al DisplayList (con addChild)
Aún habiendo sido agregada al DisplayList, no se puede hacer referencia a root en el constructor, a menos que la clase este asociada a un MovieClip creado authortime que esté en el escenario.

Aquí un simple ejemplo, una clase abc que traza a root:

Código :

package{
  import flash.display.MovieClip
  public class abc extends MovieClip{
   function abc(){
      trace(root)
   }
   public function muestra(){
      trace(root)
   }
  }  
}


Ahora desde la línea de tiempo principal, si haces esto:

var a:abc = new abc()

el trace sale null

Si haces esto:

var a:abc = new abc()
this.addChild(a)
a.muestra()

Sale null y después [object MainTimeline]

Eso en cuanto al scope, en cuanto al flashvars, accede usando:

root.parameters.mivariable

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Mar 2008 04:42 pm
HOla Jorge
te cuento que aun sigo sin entenderte bien (se ve que sabes mucho )pero utilizando palabritas tuyas encontre esto
var flashVars=loaderInfo.parameters;
basepath=flashVars.basepath;
Y eso si me funciono, logro recuperara las variables enviadas desde el html

Ahora necesito cargar un swf en un mc que esa en la escena: swf_mc
Ya me salio cargarlo pero se carga en el mc que es el que tiene la clase de documento
Como hago para cargarlo en swf_mc?

var contenedor = new Loader();
contenedor.load(new URLRequest(basepath+"menuMapa.swf"));
addChild(contenedor);
contenedor.x = 0;
contenedor.y=0;

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 Mar 2008 04:58 pm
Muy bien :)
Es cierto que soy un poco técnico en las indicaciones, pero como coordino el trabajo de mucha gente me he acostumbrado a ello ... en fin

Si swf_mc es un MovieClip que está en la escena y ya está declarado en tu clase, agrégaselo como hijo

swf_mc.addChild(contenedor);

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Mar 2008 12:04 pm
Bueniiiiiiiiisimo Jorge!
Gracias a ti terminé mi primer mini proyecto en as3.

:love:

Hasta otra! (que se que no faltará ^^ )

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Mar 2008 03:18 pm
Una buen y otra mala noticia :shock:
Crei que lo habia logrado pero nup
Porque no puedo acceder al loaderInfo desde el movieclip
La estructura es asi

base.swf
Este es el que se embed en el html y recibe los flashVars:basepath y path
Creo dinamicamente dos mc y los agrego ak DisplayList.
mapa_mc (le cargo mapa.swf)
imagen_mc (le cargo imagen.swf)

imagen.swf tiene un document class asociado a
Imagen.as

El problema es que no logro acceder a los flashVars
Intento hacerlo asi desde la funcion inicio()
public function inicio():void{
var flashVars:Object = this.root.loaderInfo.parameters;
if(flashVars.basepath==null){
basepath="";
path="images/trekking/";
}else{
basepath=flashVars.basepath;
path=flashVars.path;
}
}

No da error pero las devuelve vacias....

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Mar 2008 08:35 pm
¿Por que this.root?
root es global y uno solo, prueba

root.loaderInfo.parameters.basepath;

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Mar 2008 11:40 pm
En realidad lo tenia asi pero como no me funciona...y encontre esa otra sintaxis
No sera que por que estoy dentro de una document class de un fla que se carga en un movieclip, del fla que recibe las flash vars? (que trabalenguas)
No se, hay algo raro.
Porque si chequeo desde el fla principal, todo bien.
Pero como hago para comunicarselo a la document class de ese fla que se carga en en el fla principal...

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Mar 2008 10:12 am
Creo que di bien con mi error
Era un error de concepto.
Yo pensaba que todos los fla de un proyecto podian tener su document class.
Y pueden, pero lo que sucede es que entonces se considera la document class como la puerta de entrada y no conoce de ningun padre.
Lo que hice ahora es:
Estoy en base.swf
Tengo dos mc
En uno mapa_mc cargo mapa.swf
En el otro imagen_mc cargo imagen.swf A LA QUE LE QUITE EL DOCUMENT CLASS Main
Pero en su lugar en base.swf, en la biblioteca le asigne Main.as como clase al simbolo imagen
Y ahor si funciona!

Conclusion: solo puede haber una document class por proyecto y es la puerta de entrada de TODA la aplicación.(igual me gustaria que quien sabe mas lo confirme)

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Mar 2008 06:27 pm
Es interesante lo que cuentas, nunca he usado document class anidado, pero lo probaré ni bien tenga la oportunidad

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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