2012-03-29 13 views
5

Qué más se puede hacer si amplío MainClass con MovieClip en lugar de Sprite. Sé que MovieClip extiende Sprite y tiene la línea de tiempo definida debajo. pero ¿cómo me será útil por MovieClip?MovieClip vs Sprite en Actionscript 3.0

package { 
    import flash.display.Sprite; 
    import flash.text.TextField; 
    import flash.text.TextFormat; 
    import flash.display.MovieClip; 
    import flash.text.TextFieldType; 

    public class MainClass extends Sprite{  
     public function MainClass() { 

      var m:Module=new Module("Admin","John"); 

      var tf:TextField=new TextField(); 
      tf.text=m.info; 
      tf.border=true; 
      tf.type=TextFieldType.INPUT; 

      var myFormat:TextFormat = new TextFormat(); 
      myFormat.size = 3; 
      tf.defaultTextFormat=myFormat; 

      addChild(tf); 
      this.width=500; 
      this.height=300; 
      this.x=0; 
      this.y=10; 
     } 
    }  
} 


class Module{ 
     private var m_mName:String; 
     private var m_owner:String; 

     public function Module(mName:String,owner:String):void{ 
      m_mName=mName; 
      m_owner=owner; 
     } 
     public function get info():String{ 
      return owner+' is owner of '+mName; 
     } 
     public function get mName():String{ 
      return m_mName; 
     } 
     public function get owner():String{ 
      return m_owner; 
     }  
    } 

Otra pequeña pregunta, ¿Cómo usar Timeline si reemplazo Sprite by MovieClip?

+1

MovieClip extiende Sprite. Entonces, dicho esto, lo único que está obteniendo más en MovieClip son las propiedades/funciones del marco. –

Respuesta

16

Citando de an AS3 book:

Antes de ActionScript 3.0, se utilizó la clase MovieClip como un contenedor de gráficos para todo uso (como se utiliza ActionScript clase 3.0s Sprite). A partir de ActionScript 3.0, MovieClip solo se usa para controlar instancias de símbolos de clips de película creados en la herramienta de edición de Flash. Debido a que ActionScript 3.0 no proporciona una manera de crear elementos de la línea de tiempo, como marcos y tweens, no es necesario crear nuevos clips de película vacíos en tiempo de ejecución en ActionScript 3.0. En su lugar, todos los gráficos creados mediante programación deben ser instancias de la clase de pantalla central adecuada (mapa de bits, forma, Sprite, campo de texto, etc.).

MovieClip es una clase dinámica que conserva la compatibilidad con versiones anteriores de AS2. Eso significa que si, aunque no se recomienda, requiere que agregue una propiedad a un MovieClip, simplemente puede decir myMC.myCustomProperty = "someValue", mientras que con un Sprite, arrojará un error.

Por esta razón, también dicen que el uso de Sprites es más efectivo en términos de rendimiento. Puede encontrar una discusión sobre esto en this Adobe Forum post.

Cuestiones relacionadas