我刚刚开始学习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”实际上做了什么?
感谢您的时间!
答案 0 :(得分:1)
MovieClip类继承自以下类:Sprite,DisplayObjectContainer,InteractiveObject,DisplayObject(可以添加到显示列表中,移动通过它的x和y属性,如Marcela所述,和EventDispatcher,但与Sprite对象不同,MovieClip对象是Dynamic(动态类定义了一个对象,可以在运行时通过添加或更改或更改属性和方法。非动态的类(如String类)是一个密封类。您不能在运行时向密封类添加属性或方法。)并且具有时间轴。 如果你的类不使用时间轴(看起来就是这种情况),你可以扩展Sprite并获得相同的结果和更好的性能。如果你想要一个动态类,你可以在声明一个类时使用dynamic属性。
答案 1 :(得分:0)
extends
关键字允许类继承任何可公开访问或受保护的成员变量和基类函数(在本例中为MovieClip
)。
在此示例中,这意味着MathsQuiz
除了您可能添加的任何功能之外,还将充当MovieClip
。在基本级别上,这意味着它是一个显示对象,可以添加到显示列表中,并通过其x
和y
属性移动。
要获得更深入的了解,请对OOP Inheritance进行一些研究。