Actionscript 3.0中的MovieClip vs Sprite

Ume*_*til 5 actionscript actionscript-2 actionscript-3

如果我使用MovieClip而不是Sprite扩展MainClass,还可以做些什么.我知道MovieClip扩展了Sprite并且它下面定义了Timeline.但仍然是如何通过MovieClip使用它?

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;
        }       
    }
Run Code Online (Sandbox Code Playgroud)

另一个小问题,如果我用MovieClip替换Sprite,如何使用时间轴?

evi*_*uin 16

AS3书中引用:

在ActionScript 3.0之前,MovieClip类被用作通用图形容器(非常类似于使用ActionScript 3.0s Sprite类).从ActionScript 3.0开始,MovieClip仅用于控制在Flash创作工具中创建的动画片段符号的实例.由于ActionScript 3.0不提供创建时间轴元素(如帧和补间)的方法,因此无需在运行时在ActionScript 3.0中创建新的空影片剪辑.相反,所有以编程方式创建的图形都应该是相应核心显示类(Bitmap,Shape,Sprite,TextField等)的实例.

MovieClip是一个动态类,保留与AS2的向后兼容性.这意味着,如果,虽然不推荐,但要求您向MovieClip添加属性,您可以简单地说myMC.myCustomProperty = "someValue",而使用Sprite,这将引发错误.

出于这个原因,他们还说使用Sprites在性能方面更有效.您可以在此Adobe论坛帖子中找到有关此内容的讨论.