Comunidad de diseño web y desarrollo en internet online

Problemas con variables

Citar            
MensajeEscrito el 27 Feb 2006 09:41 pm
Buenas, tengo una pregunta sencilla pero que me trae de cabeza.
Si yo tengo una película principal que a su vez carga otra en su interior, algo de lo más normal, si en esta segunda película yo pongo una comprobación rutinaria de if / else o similar con una variable que tiene un valor asignado en la película principal, ¿funcionará?.
Es decir, aunque el ActionScript que comprueba si la variable es true, está en la película secundaria que es cargada por la principal, y dicha variable haya sido asignada en la película principal... funcionará?

Gracias por la ayuda ^^

Por DrW

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2006 09:52 pm
Tienes que ponerle ña pelicula denlante.

_root.variable // en la pelicula principal
para la segunda pelicula seria:
_root.segundapelicula.variable //desde cualquier lado
segundapelicula.variable // desde el root
this.variable //desde la segunda pelicula tambien funcionara sin el this.

define la variable con: var variable:Tipo
y tiene que ser variable global es decir estar definida fuera de una funcion.

Por Arz

14 de clabLevel



 

msie
Citar            
MensajeEscrito el 27 Feb 2006 10:12 pm
Siento seguir molestando pero me he quedado un poco sin entender... planteo este ejemplo a ver si he entendido.
Yo defino la variable como global en la película 1, por ejemplo _global.variable = "1";
entonces con una película "invisible" en la película principal, que es lo que estoy usando para cambiar los menús la cargo como siempre
_root.inst_secc.loadMovie("película2.swf");
ahora en película 2 hay un botoncito que quiere comprobar si la variable definida anteriormente en película 1 es correcta.
If (variable == 1) {
bla bla bla
}
¿funcionará? Sonrisa
Muchas gracias por las molestias tomadas

Por DrW

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2006 10:30 pm
es así, en el principal (el contenedor) declara las variables normalmente:

Código :

 
var variable = "algo";

la película que se carga puede tener acceso a esa variable así:

Código :

_root.variable;

Lo acabo de probar y funciona, Saludos.

Por micheloud

341 de clabLevel



 

Misiones, Argentina

firefox
Citar            
MensajeEscrito el 27 Feb 2006 10:42 pm
Muchísimas gracias :D ya mismo lo pongo en juego xD

Por DrW

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Mar 2006 02:47 pm
Si la defines como: _global.variable=1
si que la veras como if(variable==1){codigo}
pero si en la segunda pelicula pones: variable=2
ya no te funcionara.
mejor poner siempre _global.variable :)


Propiedad _global
_global.identifier

Referencia al objeto global que aloja las clases principales de ActionScript, como String, Object, Math y Array. Por ejemplo, puede crear una biblioteca que se expone como un objeto de ActionScript global, similar al objeto Math o Date. A diferencia de las funciones y variables declaradas localmente o en la línea de tiempo, las funciones y variables globales son visibles en todas las líneas de tiempo y ámbitos del archivo SWF, siempre y cuando no queden ocultas por identificadores con los mismos nombres en ámbitos interiores.

Nota: Al establecer el valor de una variable global, debe utilizarse el nombre completo de la variable, por ejemplo, _global.variableName. De lo contrario, se creará una variable local con el mismo nombre, que ocultará la variable global que se intenta establecer.

Valor devueltoUna referencia al objeto global que aloja las clases principales de ActionScript, como String, Object, Math y Array.

Disponibilidad: Flash Player 6; ActionScript 1.0

Ejemplo
El ejemplo siguiente crea una función de nivel superior, factorial(),, que está disponible para todas las líneas de tiempo y ámbitos en un archivo SWF:

_global.factorial = function(n:Number) {
if(n <= 1) {
return 1;
}
else {
return n * factorial(n - 1);
}
}

trace(factorial(1)); // 1
trace(factorial(2)); // 2
trace(factorial(3)); // 6
trace(factorial(4)); // 24

El ejemplo siguiente muestra cómo la no utilización del nombre de variable completo cuando se establece el valor de una variable global produce resultados imprevistos:

_global.myVar = "globalVariable";
trace(_global.myVar); // globalVariable
trace(myVar); // globalVariable

myVar = "localVariable";
trace(_global.myVar); // globalVariable
trace(myVar); // localVariable

(Help Flash)

Por Arz

14 de clabLevel



 

msie

 

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