您正在尝试完成继承,这是一个类从另一个类继承属性和方法的地方。
继承是通过extends
在定义类时使用关键字来完成的。
您的三个对象Car
,Truck
并且Moped
可以像这样继承(扩展)AlphaThings
:
class Car extends AlphaThings
{
//
}
您Car
现在将包含在 中定义的所有属性和方法,AlphaThings
例如您提到的。.fadein()
.fadeout()
奖金信息:
当您扩展另一个类时,您可以更改基类中现有的方法在从它继承的类中的工作方式。这是使用override
关键字完成的。
例如,您可能希望您Car
在使用它时做一些稍微不同或额外.fadein()
的事情,因此您可以像这样覆盖该方法:
override public function fadein():void
{
// Some additional logic.
// ...
super.fadein();
}
该行super.fadein()
用于调用原始.fadein()
函数。如果您忽略它,您可以完全重写该函数并忽略先前定义的操作。
关于这个特定场景:
这个答案当然切中要害,通过解释如何实现继承来直接回答问题。话虽如此,您可以使用少数其他路线之一更干净地完成您想要实现的目标。
例如,考虑Greensock 的 Tweening Library。该库可以以不同的方式处理任何对象上的任何值(包括 alpha)的转换。以下是一些示例,说明为什么这与使用继承相比更好:
- 该库与您的实际对象完全分开。
- 该库可以随心所欲地变得强大,而不会使所有其他游戏对象变得比它们需要的更重。例如,您会注意到可以使用多种类型的过渡样式(例如缓出、缓入等)——想象一下,如果所有这些都是您的基础对象的一部分。
- 您可以使用该库定位任何内容,这意味着您无需
AlphaThings
从示例扩展即可使用它。
- 如果您决定不再需要它或者您找到了更好的东西,那么与另一个库分离或交换是相对容易的。
- 您可以在项目中轻松地重复使用该库,而不必从新项目中提取代码片段
AlphaThings
。