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

this y parent

Estas en el tema de this y parent en el foro de Flash y Actionscript en Foros del Web. Queria saber mas que nada que es lo que hacen estos dos terminos, por que la verdad aunque me he mirado tutoriales, diccionarios actionscript, y ...
  #1 (permalink)  
Antiguo 01/07/2005, 22:30
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
this y parent

Queria saber mas que nada que es lo que hacen estos dos terminos, por que la verdad aunque me he mirado tutoriales, diccionarios actionscript, y demas no me acaban de quedar claro.
Por favor necesito una explicacion .
Gracias
  #2 (permalink)  
Antiguo 02/07/2005, 03:28
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Hola neoarcangel!

Mira this se refiere al objeto, por ejemplo si estas dentro de un película con una instancia peliUno, dentro de la línea de tiempo de ese objeto movie clip, escribes this quiere decir que te estas refiriendo al objeto donde te encuentras actualmente, que es el objeto movie clip con instancia peliUno.

Parent se refiere al objeto padre, del objeto actual donde te encuentras trabajando.

Suerte!!!
  #3 (permalink)  
Antiguo 02/07/2005, 06:55
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
Perdona, pero no entiendo muy bien lo que intentas explicarme, ¿no podrias poner algun ejemplo?
  #4 (permalink)  
Antiguo 02/07/2005, 12:13
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Hola neoarcangel!

Si claro!, Supongamos que en la raiz de nuestra película creamos una película con el nombre de peliUno, dentro de su línea de tiempo vamos agregar una propiedad peso a ese objeto.

Código PHP:
//Línea de tiempo peliUno
trace(this);
//Vamos agregar una propiedad a peliUno...
this.peso "100gr";
trace(this.peso); 
Si te fijas cuando hice la instrucción trace(this); dentro de la línea de tiempo peliUno, en la salida me sale un mensaje _level0.peliUNo, que es la referencia a ese objeto, si quiero aqregar una propiedad a ese objeto, solo haces this.peso = "100gr"; y la propiedad que se te ocurra, en mi caso fue peso que tiene un valor de 100gr.
Ahora dentro de peliUno vamos a crear otro movieclip llamado peliDos, vamos a su línea de tiempo y agregamos esto:

Código PHP:
//Ahora estamos en la línea de tiempo del objeto peliDos...
trace(this);
//para hacer referencia a la propiedad peso de peliUno, que es padre de peliDos...
trace(_parent.peso); 
Ahora en la salida me sale un mensaje que dice _level0.peliUNo.peliDos, que es la referencía a ese mismo objeto.
Si queremos llamar a la propiedad peso desde peliDos dentro de su línea de tiempo escribimos _parent.peso, que en su caso también podrías hacer referencia a esa propiedad de otras dos maneras:

a) _level0.peliUno.peso
b) _root.peliUno.peso

Si tienes mas dudas, pregunta sin pena

Suerte!!!
  #5 (permalink)  
Antiguo 02/07/2005, 12:45
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
Ok, muchas gracias, lo he cogido mejor ahora. Para que nos entendamos "parent" seria algo asi como los dos puntos para volver atras de los sistemas operativos (../)¿no?
Y lo de "this" esta claro que es para referenciar un objeto dentro de una linea de tiempo pero... en el caso de que en esa linea de tiempo haya mas objetos...¿se puede usar tambien?
Y otra cosa... el codigo del this...¿tiene que ir en un objeto o se puede poner desde una accion?
  #6 (permalink)  
Antiguo 02/07/2005, 14:33
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 14 años, 5 meses
Puntos: 406
Hola neoarcangel:
EL this se utiliza cuando se hace referencia a la línea de tiempo del clip en que estamos trabajando.
Vamos con un ejemplo:
Crea un MC y dentro de él dibuja un cuadrado de 150 x 150.
Crea otro MC con un cuadrado de 80 x 80.
Crea otro MC con un cuadrado de 30 x 30.
Dentro del primer MC coloca el segundo MC y dentro del segundo MC el tercero.
El primer MC ponlo en el escenario.
En el primer frame coloca éste código:
this._rotation=20;
Prueba la película y verás que todos los MC y el escenario girarán 20 grados, porque this está haciendo referencia en el lugar en que ha sido llamado o sea la película principal o _root.
Selecciona el código del primer frame de la principal y córtalo.
Abre el primer MC y en el frame 1 pega el código y verás que solamente gira ese MC con los otros MC que están dentro de él.
Vuelve a cortar el código y abre el tercer MC y pegas el código, y verás que solamente ese MC va a girar.
El _parent es para recorrer la jerarquía de los clips desde el final hasta el inicio.
Vamos con los mismos MC:
Abre el tercer MC y coloca el código así:
_parent.rotation=20 con lo cual hacemos rotar el segundo y el tercer MC, porque desde el tercer MC estás diciéndole que él y el padre o sea el MC que lo contiene giren.
De este modo puedes aumentar otro _parent al código y verás que tambien el primer MC giran.

Espero haberte sido de ayuda y no te haya confundido más.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #7 (permalink)  
Antiguo 03/07/2005, 10:16
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
Me funciono perfectamente, al principio me dio un error que se me movian todos a la vez pensando que el codigo lo habia puesto en el segundo mc cuando realmente estaba en el primer mc.
No obstante aunque funciona y tal cada vez que pongo el codigo en un mc que no sea el primero me sale esto.

""""Error** Símbolo=Símbolo 5, capa=Capa 1, fotograma=1:Línea 1: La declaración debe aparecer dentro del controlador on/onClipEvent
this._rotation=20"""""

¿por que?

Última edición por neoarcangel; 03/07/2005 a las 10:23
  #8 (permalink)  
Antiguo 03/07/2005, 11:26
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 14 años, 5 meses
Puntos: 406
Porque los códigos tienes que ponerlo en el frame 1 del MC y no en el MC o sea selecciona el frame 1 y no selecciones el MC para poner los códigos.

Espero habrte sido de ayuda y esté más claro ahora.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #9 (permalink)  
Antiguo 03/07/2005, 14:05
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
No, creo que en este caso si lo he hecho bien, ya que esta en el fotograma 1, no obstante te paso el archivo para que lo mires, pero creo que esta bien

Te paso el arhivo

http://es.geocities.com/rockmanandzero/this.zip
  #10 (permalink)  
Antiguo 03/07/2005, 14:30
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 14 años, 5 meses
Puntos: 406
Lo que pasa es que en el MC 5 le haz puesto el código en el MC y no en el frame.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
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 06:39.