类的用途扩展了MovieClip AS3

时间:2014-12-11 15:27:22

标签: actionscript-3 flash

我刚刚开始学习AS3,我的学校提供​​了一些已经编写了基本结构的Class文件。这是一个例子:

package {
//Add in your import statements here
//...

public class MathsQuiz extends MovieClip
{
    //Add in your class variables here
    //...

    public function MathsQuiz()
    {

    }

    public function startGame()
    {

        //Get the game loop to execute
        addEventListener(Event.ENTER_FRAME,update);
    }

    public function update(evt:Event)
    {
        //This is the game loop

        //Handle user input

        //Handle game logic

        //Handle display

    }       
}//end class    

} //结束包

我的问题是,“扩展MovieClip”实际上做了什么?

感谢您的时间!

2 个答案:

答案 0 :(得分:1)

MovieClip类继承自以下类:SpriteDisplayObjectContainerInteractiveObjectDisplayObject(可以添加到显示列表中,移动通过它的x和y属性,如Marcela所述,和EventDispatcher,但与Sprite对象不同,MovieClip对象是Dynamic(动态类定义了一个对象,可以在运行时通过添加或更改或更改属性和方法。非动态的类(如String类)是一个密封类。您不能在运行时向密封类添加属性或方法。)并且具有时间轴。 如果你的类不使用时间轴(看起来就是这种情况),你可以扩展Sprite并获得相同的结果和更好的性能。如果你想要一个动态类,你可以在声明一个类时使用dynamic属性。

答案 1 :(得分:0)

extends关键字允许类继承任何可公开访问或受保护的成员变量和基类函数(在本例中为MovieClip)。

在此示例中,这意味着MathsQuiz除了您可能添加的任何功能之外,还将充当MovieClip。在基本级别上,这意味着它是一个显示对象,可以添加到显示列表中,并通过其xy属性移动。

要获得更深入的了解,请对OOP Inheritance进行一些研究。