Hola, he definido la variable
foto_actual=0
en una parte de mi flash y en otra, le cambio el valor, pero no lo hace si no es desde el mismo fotograma. Desde el mismo fotograma, que contiene las funciones, si que se puede. ¿Qué está pasando?
| |||
Variable que no puedo modificar Hola, he definido la variable foto_actual=0 en una parte de mi flash y en otra, le cambio el valor, pero no lo hace si no es desde el mismo fotograma. Desde el mismo fotograma, que contiene las funciones, si que se puede. ¿Qué está pasando? |
| |||
Respuesta: Variable que no puedo modificar Cita: Hola...
Iniciado por luistar Habeís oido acerca del ÁMBITO DE LAS VARIABLES? las variables sólo son accesibles desde donde su ámbito les permite te recomiemdo que leas el manual que viene con el programa sobre esta sección... ... ahora... para poder acceder a las variables en nuestra pelicula, tenemos que tener en cuenta la ruta, la ubicación de la variable... por ejemp: si tienes una variable ACTUAL en un clip FOTOS que está en _root la manera de acceder a él sería: desde cualquier ámbito: _root.FOTOS.ACTUAL si estás dentro de FOTOS: this.ACTUAL ... si defines una variable explícitamente dentro de una función, ésta estára accsible solo para el ámbito de la función, ejmp: Código PHP: y si su ámbito lo permite :D Yo entiendo que... _root se usa para hacer referencia a variables declaradas en la linea de tienpo principal, supongo que sea la de la instanca de la pelicula principal. Pero cuando declaro las variables ahi tambien debo usar el _root o solo se usa cuando estoy intentando accederlas desde otra ubicación? |
| |||
Respuesta: Variable que no puedo modificar Hola, Esto del ámbito de variables parece complicado de explicar pero en realidad es muy sencillo. Tienes 2 sitios donde declarar variables: 1- en un fotograma de la línea de tiempo (sea el _root o sea un clip anidado dentro de otro) 2- en los botones y clips mismamente. Si declaras una variable en el fotograma 1 del _root, podrás acceder a ella desde cualquier clip que esté en el escenario en ese fotograma. Si no quieres perder el valor de esa variable y moverte a otros fotogramas, tienes que alargar el fotograma donde la has declarado para que siga "visible" la variable. En cuanto la capa donde está la programación pierde el fotograma clave donde está declarada la variable, ya no tendrás acceso a ella. Es más, esa variable se destruye. EJEMPLO: Tienes una peli con 2 fotogramas. Tienes una capa donde sólo pones programación en el fotograma 1 y el 2 es un fotograma vacío. En otra capa tienes 2 clips que están en los dos fotogramas (sin corte de fotograma clave). En la capa de programación, fotograma 1 declaras la variable "a=1" En el fotograma 1 de cada clip también declaras (porque puedes) una variable "a=2" y "a=3" para el clip 1 y 2 respectivamente. VAMOS A "LLAMARLAS". En el fotograma 1 tienes que haber puesto un stop(). Estamos en el fotograma 1. Desde el fotograma 1 de la capa de programación escribes: trace(a) //resultado=1 trace(clip1.a) //RESULTADO= 2 trace(clip2.a) //RESULTADO=3 Desde el CLIP1: trace(_root.a) //RESULTADO=1 trace(_parent.a) //RESULTADO=1 trace(a) //RESULTADO=2 trace(this.a) //RESULTADO=2 Última edición por exangel; 23/05/2008 a las 15:20 |
| |||
Respuesta: Variable que no puedo modificar CONTINUA aquí que no cabía más texto: DESDE el CLIP 1: trace(_root.clip2.a) //RESULTADO=3 trace(_parent.clip2.a) //RESULTADO=3 DESDE EL CLIP 2: trace(_root.clip1.a) //RESULTADO=2 trace(_parent.clip1.a) //RESULTADO=2 AHORA QUITAS EL stop() del fotograma 1 y lo pones en el 2 (que no tenía programación). DESDE EL CLIP 1: trace(_root.a) //RESULTADO= undefined ¡NOOO ESTÁ!! Te la has dejado en el fotograma 1 Parece un rollo pero es simple: la variables sólo están cuando los objetos y fotogramas están visibles en ese momento. Sólo hay una excepción: las GLOBALES que están presentes en todo el SWF estés donde estés. Pero no puedes ir llenando un SWF de GLOBALES porque al final sería un lío. Saludos |