Hola Pedro, Las subclases de Moviclip son muy interesantes a la hora de aplicar los principios OOP a clases graficas. Las basicas: Herencia, encapsulacion y polimorfismo.
Siguiendo tu ejemplo del matamarcianos: Me imagino que un matamarcianos basico va a contar con una serie de marcianos diferentes, una nave "de los buenos" que se va cepillando marcianos y una serie de disparos que lanzan unos y otros. Herencia: Yo definiria, asi ,a bote pronto. Una subclase de MovieClip abstracta, vamos a llamarla NaveBase que tubiera los metodos b�sicos de movimiento, colocacion y destruccion del objeto. De esta extenderia (subclasearia) una clase tambi�n abstracta, MarcianoBase, con comportamientos comunes a todos los marcianos, como la IA, y de esta, ya por ultimo, sacaria las clases necesarias para los distintos enemigos: MarcianoPeon, MarcianoChungo y MarcianoJefe, estas si que podrian estar vinculadas con elementos de la biblioteca. Estas 3 compartirian mucha funcionalidad que viene dada por las clases base (NaveBase y MarcianoBase) con lo que ya estarias ganando en cuanto a reutilizacion de codigo. En el caso de escribir las funciones directamente sobre la linea de tiempo probablemente tendrias que duplicar gran parte del codigo de una a otra. Un cambio en una supondria la modificacion del resto. Si necesitas nuevos tipos de marcianos ya no comienzas de 0 sino que tienes una base de codigo sobre la que partir (extender). Sin contar que podrias utilizar el NaveBase tambi�n para extender la clase NaveHeroe. Encapsulacion: Se define como encapsulacion la capacidad de una clase de abstraer el uso de la implementacion. Es decir, las demas clases u objetos que utilizan otras clases u objetos solo conocen el funcionamiento de este a trav�s de una serie de metodos/propiedades publicos. Esto permite poder reescribir la clase entera (la implementacion) que si no rompe la norma de la encapsulacion (mantiene su interface con las demas clases) el resto del codigo no necesitar�a modificarse. Si tienes que cambiar ya sea por optimizacion, por encontrar algun bug, o porque el cliente simplemente te lo pide la forma en la que se mueven las naves, una refactorizacion (cambio del codigo interno sin cambiar el interface) de la clase NaveBase valdr�a. Polimorfismo: Polimorfismo se puede definir como la capacidad de diferentes clases de responder a un mismo mensaje. Pongamos que estas programando la clase EjercitoMarcianos que se encarga de colocar marcianos de diferentes tipos en diferentes lugares dependiendo del nivel en el que se encuentre el juego. Esta clase podria utilizar un metodo de la clase NaveBase (o MarcianoBase) para llamar al metodo colocarEn() o aumentarIA() independientemente de si es un MarcianoPeon, MarcianoChungo o MarcianoJefe ya que utilizan una interface compartida gracias a la herencia y todos ellos en ciertos casos pueden ser intercambiables. Por ejemplo en el nivel 1 colocar 10 MarcianoPeon y 1 MarcianoChungo. Pero en el nivel 10 coloar 10 MarcianoChungo y 1 MarcianoPeon. Basicamente el POO es superior a la programacion procedural que tu comentas en que la complejidad que puede alcanzar un programa procedural puede hacer casi imposible su mantenimiento o actualizacion. Basicamente porque crea varias unidades datos/gestion de datos que tienen poco acoplamiento entre si. Es decir, el funcinamiento de uno depende muy poco del funcionamiento del otro. Espero haberte iluminado en este momento de oscuridad y perdida de f�, hermano mio xDD un saludo P.D: El hacer subclases de MC no implica tener que usar attachMovie, puedes tenerlos colocados directamente sobre el escenario como los mc normales. Joseba Alonso www.sidedev.net www.5dms.com ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, September 08, 2004 1:13 PM Subject: [ASNativos] movieclips subclases > mi duda existencial del dia... realmente sirve para algo hacer subclases de > movieclips? lo he estado mirando y realmente no le acabo de pillar la gracia. > Supongamos que estamos haciendo el clasico matamarcianos... y decido que los > marcianos sean una clase... si hago una subclase de movieclip, tengo que hacer > toda la pelotera esta de crear el simbolo, atachar el la clase etc, etc... y > luego de cualquier modo tendre que usar attachmovie o similar... por > composicion paso por que necesito que tenga todo lo que tiene un movieclip ;P > total que mirandolo pienso... no sera mejor meterle el codigo dentro del > movieclip y dejarme de tonterias (mas intuitivo) o ya puestos hacer una clase > que sea el maestro de marionetas de los marcianos y se encargue de dirigirlos > a todos extrayendo los mc que necesite de la libreria. > > Pues ya esta, toma paranoia ma�anera! xD > > pd: a veces esto del poo me parece una pijada sin sentido xDD otras no > > > ---------------------------------- > Lista ASNativos:[EMAIL PROTECTED] > http://www.5dms.com/listas > ---------------------------------- ---------------------------------- Lista ASNativos:[EMAIL PROTECTED] http://www.5dms.com/listas ----------------------------------

