Comunidad de diseño web y desarrollo en internet online

Variables contenidas en MC

Citar            
MensajeEscrito el 11 Feb 2011 03:15 am
Hola amigos:

Estoy comenzando a aprender el uso de variables y me perdí cuando dentro de un MC quise hacer referencia a una variable del Stage.
Pongo a continuación un ejemplo que no tiene sentido pero sirve para explicar mi duda:

Imaginemos que en el Stage tengo dos MC: "uno_mc" y "dos_mc"
Entramos a "uno_mc" y en el primer frame escribimos:

Código ActionScript :

var ejemplo:Boolean=true;


Luego entramos a "dos_mc" y en el primer frame escribimos:

Código ActionScript :

if (ejemplo)
trace ("es verdadero");


Obviamente, si pongo todo el código junto dentro de un mismo MC o en el STAGE no surge el problema, e imagino que no estoy sabiendo aludir al ruteo de la variable "ejemplo" declarada en "uno_mc".

¿Podrían entonces explicarme como solucionar el problema en este mismo ejemplo?

Muchisimas gracias y saludos!

Por efluvios

3 de clabLevel



 

safari
Citar            
MensajeEscrito el 11 Feb 2011 07:40 am
Efluvios, si declaras la variable DENTRO de un MC, la variable "pertenece" a ese MC.
Vamos, desde la película principal escribiríamos

Código ActionScript :

//en la película principal
if (uno_mc.ejemplo){
   trace("es verdadero")
}
//la variable actúa como si fuera una "propiedad", vamos, igual que escribimos
uno_mc.x=300

Desde "dos_mc" debemos "bajar" al stage y "subir" al MC. Así, que, en principio sería

Código ActionScript :

//NO FUNCIONA
//en dos_mc
if (parent.uno_mc.ejemplo){ //<--el "parent" baja uno
   trace("es verdadero")
}
//igual podemos escribir que escribimos
parent.uno_mc.x=300

El motivo de que no funcione es que parent, Flash entiende que es un [/url=http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/display/DisplayObject.html]DisplayObject[/url], y un displayObbject NO tiene ninguna "propiedad" llamada "uno_mc"
Pero nosotros sabemos que "parent" es "algo más que un displayObject. "parent" es, en este caso un MovieClip, así que le indicamos a Flash que es un MovieClip. Es lo que se conoce como "conversión de cast"

Código ActionScript :

//en dos_mc
if (MovieClip(parent).uno_mc.ejemplo){
   trace("es verdadero")
}
//igual podemos escribir que escribimos
MovieClip(parent).uno_mc.x=300

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Feb 2011 07:23 pm
Muchas gracias Eliseo2.
El ultimo ejemplo que diste me anduvo a la perfección.
Después, por curiosidad probé el primer ejemplo que mostrabas y no me anduvo.

Se trata del caso en el cual la variable esta definida dentro de un movieclip, en este caso: "uno_mc"
y para acceder a la misma el código es el siguiente:

Código ActionScript :

if (uno_mc.ejemplo){ 
   trace("es verdadero") 
} 


Al probarlo de esta manera el output no me dá error pero tampoco aparecer el trace "es verdadero")
¿Alguna sugerencia?

Gracias nuevamente!

Por efluvios

3 de clabLevel



 

safari

 

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