Hola, perdonad que me interfiera pero me gustar�a hacer una pregunta al hilo de lo que habl�is.
Joseba, el planteamiento que haces, para as2, resulta muy clarificador y did�ctico. Adem�s est� en la l�nea de lo que implementa el ide de flash. Es decir relacionar un mc con una clase. Pero �qu� ocurre si queremos relacionarlo con m�s de una clase? En principio a trav�s de la "biblioteca > propiedades > avanzadas > clase as2" s�lo puede hacerse para una. Si, como en el ejemplo que pones, todos los m�todos que quieres implementar responden a una l�gica que permita encapsularlos, bien, pero si no es as�, �c�mo se hace? Por ejemplo: 1/ Un mc con funcionalidad de ventana de datos. 2/ Una clase que encapsule los m�todos relativos a las transformaciones geom�tricas (cambio posici�n, movimiento, aceleraciones, escala...). 3/ Una clase que encapsule m�todos para dar/pedir datos a un xml o una bbdd y los muestre en un campo de texto... 4/ Una clase que encapsule m�todos que queramos implementar de una forma particular en estos mc tipo ventana. Por ejemplo, cerrar ventana, iconizarla, acoplarla a una barra especial... En este caso, o incluso cuando s�lo hay dos clases que implementar �c�mo ser�a correcto hacerlo? �Tendr�a que encapsular los miembros de esas clases que me interesaran en una nueva y �nica, espec�fica de mi proyecto (no abstraible) para instanciarla con el mc de mi proyecto? Y una preguta m�s �sabe alguien de alguna informaci�n de macromedia al respecto de as2? Me refiero a algo consistente, porque la ayuda y los manuales... Gracias y saludos. :��: croma2 :������������������������: : Carlos Terradillos Guti�rrez : :::::::::::::::::::::::::::::::::::::: > -----Mensaje original----- > De: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] En nombre de Joseba Alonso > Enviado el: martes, 17 de febrero de 2004 1:08 > Para: [EMAIL PROTECTED] > Asunto: Re: [ASNativos] Aplicar dos clases a un MC > > > Hola Paulo, > > Creo que tienes un problema de planteamiento basico. Supongo > que es por > estar acostumbrado a hacer prototipos. Tienes 2 clases que en realidad > serian dos metodos de una sola. Es decir, es mejor hacer una > subclase de > movieclip para implementar una funcionalidad mas general. Una clase > "EaseClip" que sea capaz de mover, cambiar tama�o, alfa...etc > y no solo de > forma elastica sino con mas tipos de easing. De esta manera, > cuando en un > proyecto en concreto necesites que determinado clip tenga > esas cualidades > solo enlazas la clase con el simbolo de biblioteca y listo. > Es sencillo que > un clip que tenga que cambiar su posicion usando algun tipo de easing > tambien necesite hacerlo con su tama�o. �Porque no coger todas esas > necesidades y encapsularlas en una clase? > > un ejemplo (AS2): > > class EasingClip extends MovieClip{ > function EasingClip(); > function moverA(x:Number,y:Number,frames:Number,ease:String); > function escalaA(xs:Number,ys:Number,frames:Number,ease:String); > // etc.... > } > > luego vinculas el simbolo con la clase y listo: > > instancia_mc.moverA(500,500,60,"elastic"); > > otra posibilidad seria hacer un "mixin". Una clase que da > funcionalidad a > otra clase. Es una tecnica que te permite a�adir metodos a un objeto > directamente sin modificar su herencia. Muy util para > proporcionar utilidad > generica a un objeto > > class ClipEaser{ > private function > moverA(x:Number,y:Number,frames:Number,ease:String); > private function > escalaA(xs:Number,ys:Number,frames:Number,ease:String); > public static initialize(clip:MovieClip){ > clip.moverA = moverA; > clip.escalaA = escalaA; > } > } > > luego puedes aplicarlo a una clase: > > class OtraClase extends DataGrid{ > function OtraClase(){ > ClipEaser.initialize(this); > } > function Mostrar(){ > moverA(300,300,50,"elastic"); > escalaA(100,100,50,"elastic"); > } > } > > > o a una instancia directamente: > > ClipEaser.initialize(columna5_mc); > columna5_mc.moverA(300,300,50,"elastic"); > columna5_mc.escalaA(100,100,50,"elastic"); > > espero que esto te ayude. > > un saludo > > Joseba Alonso > www.sidedev.net > www.5dms.com > ----- Original Message ----- > From: "Paulo Carvajal -- Vudumedia.com---" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Monday, February 16, 2004 11:41 AM > Subject: Re: [ASNativos] Aplicar dos clases a un MC > > > > Replanteo esto, a ver si se me entiende algo. > > > > Estoy acostumbrado a pensar en prototipos. Escribo uno que > a�ade un m�todo > > al objeto MC y se lo aplico cuando me da. Escribo otro y se > lo aplico > > despu�s del primero tranquilamente. Pero... Ahora los estoy > convirtiendo > en > > Clases. > > Tengo dos clases, las instancio como objetos y se las > aplico al mismo > clip. > > Sin problemas, funciona. Pero me extra�a que esto est� ni > medio bien en > POO, > > porque tengo dos objetos de programaci�n que afectan al mismo clip. > > > > La pregunta: > > Si escribo una clase que a�ade la funcionalidad de > movimiento elastico a > un > > clip, luego escribo otra que a�ade funcionalidad de > escalado a un clip > �c�mo > > se las aplico?. �O me falla la l�gica de base y tengo que > hacerlo de otra > > forma? Porque si quiero seguir a�adiendo clases seg�n este > esquema, al > final > > voy a tener mil objetos por cada clip y esto se va a > convertir en una > > locura. > > > > Gracias, Paulo. > > > > > > ----- Original Message ----- > > From: "Paulo Carvajal -- Vudumedia.com --" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Sunday, February 15, 2004 5:52 PM > > Subject: [ASNativos] Aplicar dos clases a un MC > > > > > > > Suponed que tengo dos clases que actuan sobre un clip y > las aplico as� > por > > > separado: > > > > > > var miSize01:ElasticSize = new ElasticSize(mc01, 200,200, .5, .4); > > > var miMov01:ElasticMov = new ElasticMov(mc01, 200,200, .5, .4); > > > > > > > > > Aparentemente funcionan bien, pero no creo que esto sea > muy coherente, > ya > > > que tengo dos objetos que "apuntan" a un mismo MC (mc01). > �Cual ser�a la > > > l�gica para aplicarlas al mismo tiempo sin tener dos objetos? > > > La primera idea ha sido una subclase que heredara de las > otras dos, pero > > eso > > > no se puede (�o s�?). > > > �Ser�a mejor una sola clase que tuviera los m�todos mover > y escalar? > Pero > > > qu� pasa si luego quiero ir extendiendola. > > > > > > Paulinio, la taalde me coonfunde. > > > > > > <!------------------------------- > > > Lista ASNativos: > > > subscripciones/desubscripciones > > > http://www.sidedev.net/asnativos > > > --------------------------------> > > > > > > > > > > > > <!------------------------------- > > Lista ASNativos: > > subscripciones/desubscripciones > > http://www.sidedev.net/asnativos > > --------------------------------> > > <!------------------------------- > Lista ASNativos: > subscripciones/desubscripciones > http://www.sidedev.net/asnativos > --------------------------------> > <!------------------------------- Lista ASNativos: subscripciones/desubscripciones http://www.sidedev.net/asnativos -------------------------------->
