Comunidad de diseño web y desarrollo en internet online

Usar variable externa en una clase

Citar            
MensajeEscrito el 06 Mar 2009 10:03 pm
Hola que tal, tengo una clase en actionscript 3.0, y necesito usar una variable que es externa que esta en el _root, pero cuando quiero compilar el as, me tira un error porque me dice que la variable no fue declarada, como puedo resolver esta situacion?

Por D0M41N

56 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 06 Mar 2009 10:12 pm
no se como funciona AS3 con las clases, pero como estas declarando a la variable que esta en _root y como la estas llamando desde la clase?

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 06 Mar 2009 10:16 pm
a la variable la llamo con un if...

Código :

if (mivariable==1) { trace("hola"); }


pero si no la declaro antes, me tira error y no funciona
por ejemplo si el codigo lo pongo asi si funciona:

Código :

private var mivariable:Number = 1;
if (mivariable==1) { trace("hola"); }


o tambien

Código :

public var mivariable:Number = 1;
if (mivariable==1) { trace("hola"); }


la forma que tengo de cargar la variable es en la ruta del swf:

mi_pelicula_compilada.swf?mivariable=1

esto ultimo funciona, de hecho todo funciona, si fuese en actionscript 2.0 pero no entiendo porque me tira error si no declaro la variable, y la uso en el if, intente poner en el if asi:

Código :

if (_root.mivariable==1) { trace("hola"); }


pero tambien me tira error, alguien sabe que puedo hacer?

Por D0M41N

56 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 06 Mar 2009 10:27 pm
claro proque yo en AS2 declaro la variable:

Código ActionScript :

var miVar:Number = new Number()


y desde la clase la llamo con:

Código ActionScript :

trace(_root.miVar);


y me funciona de dies, no estaras llamando a la variable desde una funcion de un mc, ejemplo

Código ActionScript :

myclip.onPress = function()
{
trace(_root.miVar);
}


si es asi no la va a encontrar, para que la encuentre tenes que declarar esto

Código ActionScript :

var root:Object = new Object();
root =_root;

myclip.onPress = function()
{
trace(root.miVar);
}


haber si te funciona, igual anda dando vueltaspor hay longVie que te lo responde correctamente seguro :P

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 07 Mar 2009 01:32 am
Como puede ser que (inclusive yo) nadie sepa como llamar una variable global desde una clase as al stage desde actionscript 3.0?

Por D0M41N

56 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 07 Mar 2009 01:55 am

wawi escribió:

igual anda dando vueltaspor hay longVie que te lo responde correctamente


:? ¿y que tal si no se? :P

Ademas esta pregunta funcionaria mejor en el foro de AS3. De todas formas prueba esto:

Podrias cuando declares tu clase extenderla de MovieClip

Código ActionScript :

public class tu_clase extends MovieClip

y eso le da la posibilidad a tu clase de acceder a _root; pero si no quieres extenderla de MovieClip porque simplemente no es el caso, puedes probar colocando en el constructor de tu clase, un parametro movieclip.

Código ActionScript :

private var _root:MovieClip;
function tu_clase( partener:MovieClip ) 
{ 
   this._root = partener._root;
}


y cuando uses tu clase en los fotogramas la usarias asi:

Código ActionScript :

var instancia:tu_clase = new tu_clase( this );

ahora en el _root tienes que colocar esto:

Código ActionScript :

var mivariable:Number;


ahora ya tienes acceso al _root. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 07 Mar 2009 01:59 am
Se me olvidaba, si quieres extenderla de MovieClip(la primer opcion), entonces tienes que agregar este import

Código ActionScript :

import flash.display.MovieClip;

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 08 Mar 2009 04:05 pm
Dale una ojeada a este post.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 09 Mar 2009 07:18 pm

D0M41N escribió:

Como puede ser que (inclusive yo) nadie sepa como llamar una variable global desde una clase as al stage desde actionscript 3.0?


es porque la mayoria le tiene miedo XD, osea estar acostrumbrado a AS2 y que apresca AS3 que te cambia todo no es muy lindo, ademas por ahora no hay nada que as3 haga que as2 no, por lo menos no lo vi, cuando lo vea me paso a as3 XD.

longVie escribió:

lo que dijiste :P


todo lo que pregunto lo respondes, es mas estas en casi todos los post XD.. dificil que no contestes esta boludes :P

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox

 

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