Comunidad de diseño web y desarrollo en internet online

_parent

Citar            
MensajeEscrito el 14 Feb 2007 03:54 am
Buenas, resulta que tengo un problema.
Estoy haciendo un proyecto por ocio, y para él necesitaba crear clases.
El problema es que tengo que crear objetos dentro de objetos y el subobjeto debe cambiar parámetros del objeto padre.
Por ejemplo con la función "cambiarPropiedadParent(5)" sería:

Código :

cambiarPropiedadParent(i:Number){
   _parent.numero = i
}

Pero por lo visto el parámetro _parent solo funcióna en clases predeterminadas.
Como puedo cambiar parámetros del objeto padre con una dirección relativa?
Espero que alguien lo sepa ^_^U
---
Sel

Por Seldaiendil

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 Feb 2007 10:38 am
Hola,

lo que hago yo es pasarle la referencia del objeto contenedor a los subobjetos. Me explico: tenemos una clase ClaseA que tiene un atributo de la clase ClaseB y una clase ClaseB con un atributo de la claseA

Código :

class ClaseA {
   private var objetoB: ClaseB;
   ...
}

class ClaseB {
   private var parent: ClaseA;
   ...
}


pues cuando se crea el objetoB le paso al constructor una referencia de la ClaseA:

Código :

class ClaseA {
   private var objetoB: ClaseB;
   ...
   private function crearObjetoB(): Void {
      this.objetoB = new ClaseB(this);  // <-- Aquí le paso la referencia a la clase
   }
}

class ClaseB {
   private var parent: ClaseA,
   ...
   public function ClaseB(qParent: ClaseA) {
      this.parent = qParent;
   }
   ...
}


y asi ya puedo modificar los valores de la clase contenedora:

Código :

class ClaseB {
   private var parent: ClaseA,
   ...
   public function ClaseB(qParent: ClaseA) {
      this.parent = qParent;
   }
   ...
   private function cambiarPropiedadParent(i: Number) {
      this.parent.numero = i;
   } 
   ...
}


Espero que te sirva.

Saludos!

Por dmvalverde

150 de clabLevel



Genero:Masculino  

Extremadura

opera
Citar            
MensajeEscrito el 15 Feb 2007 01:09 pm
Perdona, pero es que lo leo y lo releo y no consigo entender mucho. :crap:
Pero por lo que veo me parece que el mayor inconveniente es que no tengo más de una clase, es decir, los objetos que tengo que anidar son todos de la misma clase.
Mira, te resumo el código de la clase y te pongo un ejemplo de objetos anidados: (si hay errores de sintaxis no los tomes en cuenta, no tengo el archivo a mano)

Código :

class clase1{
   private var _parent:clase1;
   public var contador:Number;
   function clase1(i){
      this._parent.numero = i;
   }
   public function borrar(){
      this._parent.numero = 0
   }
}

Código :

a = 1
object1:clase1 = new clase1(a);
a++
object1.object2:clase1 = new clase1(a);
a++
object1.object2.object3:clase1 = new clase1(a);
...


Se que la declaración de _parent no tiene sentido, pero miré el archivo MovieClip.as en la carpeta de clases de Flash y lo copié.
---
Sel

Por Seldaiendil

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Feb 2007 03:30 pm

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox

 

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