【问题标题】:MovieClip vs Sprite in Actionscript 3.0Actionscript 3.0 中的 MovieClip 与 Sprite
【发布时间】:2012-04-12 20:53:37
【问题描述】:

如果我用 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;
        }       
    }

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

【问题讨论】:

  • MovieClip 扩展了 Sprite。话虽如此,您在 MovieClip 上获得的更多信息就是帧属性/功能。

标签: actionscript-3 actionscript actionscript-2


【解决方案1】:

引用an AS3 book:

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

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

出于这个原因,他们还说使用 Sprite 在性能方面更有效。您可以在 this Adobe Forum post 找到有关此的讨论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2013-10-19
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多