Hola lista
no pretendo levantar la polémica herencia vs composición, pero estoy tratando 
de hacer algo por composición que me resultaba muy cómodo por herencia, pero me 
gustaría poder valorar las dos posibilidades para ver cual me resulta mejor.
En aplicaciones sencillas sin ninguna estructura de control por clases ni 
patrones de diseño, muchas veces me resulta muy util hacer un mc de una clase 
que extienda de MovieClip (he avisado que no deseo polémica... :), y querria 
ver su misma implementación por composición.
Antes me resultaba muy cómodo acceder a una instancia de un mc y decirle

circulo1.mover();

y el circulo1 va y se mueve :)

Ahora por composición tengo que acceder a la instancia que contiene una 
referencia del mc en el escenario

var c1:Circulo = new Circulo(circulo1);
c1.mover();

Le veo sus ventajas, pero ahora me tengo que acordar de que c1 es la intancia 
que "tiene-a" circulo1, y es lo unico que no me gusta.
Se que podria hacer una clase Controlador que supiese las instancias que hay, 
pero a veces es más de lo que se merece el trabajo, y me sigue resultando super 
comodo hacer clic sobre un mc y a traves de su nombre, poder acceder a sus 
metodos.

Se me ha ocurrido hacer un apaño, pero no se si es muy chapu o si hay alguna 
otra manera tan sencilla de hacerlo.
Cuando creo la instancia de Circulo, guardo en el mc del escenario una 
referencia (_instancia) de la instancia de la clase, de tal manera que ahora 
puedo hacer

var c1:Circulo = new Circulo(circulo1);
circulo1._instancia.mover();

Ahi va la clase:

class Circulo {
     private var _instancia_mc:MovieClip;
     public function Circulo(ref:MovieClip) {
          _instancia_mc = ref;
          _instancia_mc._instancia = this;
     }
     public function mover():Void {
          _instancia_mc.......
     }
}



En mi peli, con un mc llamado "circulo1"

var c1:Circulo = new Circulo(circulo1);
circulo1._instancia.mover();

Un saludo.

-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------

Responder a