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 -----------------------------------------------------