Foros del Web » Creando para Internet » Flash y Actionscript »

Variable que no puedo modificar

Estas en el tema de Variable que no puedo modificar en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/01/2006, 04:46
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 15 años, 11 meses
Puntos: 0
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?
  #2 (permalink)  
Antiguo 20/01/2006, 07:41
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
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:
/*CÓDIGO ACTION SCRIPT*/
// definimos una funcion con una variable para sí
alguna_funcion = function () {
    var 
cadena:String 'una variable de función sólo es accesible dentro de la función';
    
trace(cadena);
};

//llamamos a la función
alguna_funcion();

//intentamos ver el contenido de la variable cadena
trace(cadena);

//-->
stop(); 
tendrías que revisar las rutas de cómo acceder a la variable
y si su ámbito lo permite

:D
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #3 (permalink)  
Antiguo 23/05/2008, 10:35
 
Fecha de Ingreso: diciembre-2007
Mensajes: 97
Antigüedad: 10 años
Puntos: 0
Pregunta Respuesta: Variable que no puedo modificar

Cita:
Iniciado por luistar Ver Mensaje
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:
/*CÓDIGO ACTION SCRIPT*/
// definimos una funcion con una variable para sí
alguna_funcion = function () {
    var 
cadena:String 'una variable de función sólo es accesible dentro de la función';
    
trace(cadena);
};

//llamamos a la función
alguna_funcion();

//intentamos ver el contenido de la variable cadena
trace(cadena);

//-->
stop(); 
tendrías que revisar las rutas de cómo acceder a la variable
y si su ámbito lo permite

:D
Hola...

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?
  #4 (permalink)  
Antiguo 23/05/2008, 16:13
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 8 meses
Puntos: 22
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
__________________
Compartir es vivir
www.programador-php.com

Última edición por exangel; 23/05/2008 a las 16:20
  #5 (permalink)  
Antiguo 23/05/2008, 16:19
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 8 meses
Puntos: 22
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
__________________
Compartir es vivir
www.programador-php.com
  #6 (permalink)  
Antiguo 24/05/2008, 23:50
 
Fecha de Ingreso: diciembre-2007
Mensajes: 97
Antigüedad: 10 años
Puntos: 0
Respuesta: Variable que no puedo modificar

Exerlente!!!
Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:21.