Comunidad de diseño web y desarrollo en internet online

Serios problemas con package y herencia (extends) en AS3

Citar            
MensajeEscrito el 11 Ago 2007 01:42 am
Que tal, soy nuevo en el foro y tengo un poco de experiencia en POO pero soy completamente nuevo en ActionScript 3, mi problema es el siguiente.

tengo una serie de movieclips que se van a comportar de manera muy similar, por lo que me parece logico indicarle en las propiedades a cada uno de estos movieclips que hereden de mi clase que se llama Departamento (una clase muy simple), esta a su vez hereda de la clase MovieClip.

ok, el problema esta que si esto lo meto en un package sin nombre y el .as lo coloco junto con el .fla no hay problema, pero que pasa: yo necesito que varios .fla distintos que van a contener objetos que se comportan igual a mi clase Departamento utilicen esta misma clase. Y para no incluir el Departamento.as en cada carpeta de cada uno de estos .fla cree una carpeta donde coloco mis clases C:\Flash\Clases\mscp\objetos\ y agrego el path C:\Flash\Clases\ en la configuracion de actionscript 3 y mi package le coloco el nombre de mscp.objetos y dentro coloco el import del movieclip y dentro la clase.

El caso es que cuando coloco el Package con nombre no me funciona.

Cabe mensionar que cree un proyecto similar hace algun tiempo en flash 8 con AS2 y me funcionó perfectamente, solo que no utilice package sino que coloque toda la ruta en el nombre de la clase "public class mscp.objetos.Departamento extends MovieClip" por ejemplo.

ya analice la solucion de esta entrada http://www.cristalab.com/foros/t43165.html pero no funciona para mi caso me saca el mismo error:

Código :

5000: The class 'mscp.objetos.Departamento' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.


ok, si alguien me puede ayudar estare muy agradecido, gracias, espero no aburrirlos y luego explico mejor el porque quiero hacerlo así.

Por xibalba

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Ago 2007 01:46 am
solo coloco el codigo de mi clase

Código :

package mscp.objetos
{

   import flash.display.MovieClip;
   import flash.events.MouseEvent;
   
   class Departamento extends MovieClip
   {
      public function Departamento()
      {
         super();
         this.addEventListener(MouseEvent.MOUSE_OVER, sobre);
         this.addEventListener(MouseEvent.MOUSE_OUT, fuera);
         this.addEventListener(MouseEvent.MOUSE_WHEEL, fuera);
         this.addEventListener(MouseEvent.CLICK, clic);
      }
      
      
      public function sobre(e:MouseEvent)
      {
         //Mis acciones
      }
      
      public function fuera(e:MouseEvent)
      {
         //Mis acciones
      }
      
      public function clic(e:MouseEvent)
      {
         //Mis acciones
      }
      
            
   }   
}


espero que me puedan ayudar.

Por xibalba

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Ago 2007 02:51 pm
hola que tal xibalba!!! te recomiendo que no extiendas el MC, sino que extiendas el Sprite

Código :

package mscp.objetos
{

   import flash.display.Sprite;
   import flash.events.MouseEvent;
   
   class Departamento extends Sprite
   {
      public function Departamento()


Porque el Sprite?, el Sprite es identico a un MC con una sola diferencia, no tiene línea de tiempo, extender los MC es incluirles línea de tiempo y ya que estas programando una clase, estas agregandole la línea de tiempo que en clases no sirve de mucho, por otro lado se dice que extender mc hace más lento el proceso en tiempo de ejecución

saludos!!!

Por andres_santos

236 de clabLevel



 

opera

 

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