クラスが別のクラスからプロパティとメソッドを継承する継承を実現しようとしています。
継承はextends
、クラスを定義するときにキーワードを使用して実行されます。
あなたの3つのオブジェクト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()
ます。これを省略すると、関数を完全に書き直して、以前に定義したアクションを無視することができます。
この特定のシナリオについて:
もちろん、この答えは的を射たものであり、継承を実現する方法を説明することで質問に直接答えます。そうは言っても、あなたが達成しようとしていることは、他のいくつかのルートの1つを使用してよりクリーンに行うことができます。
たとえば、Greensockによるこのトゥイーンライブラリについて考えてみます。ライブラリは、さまざまな方法で任意のオブジェクトの任意の値(アルファを含む)の遷移を処理できます。これが優れている理由と継承を使用している理由の例を次に示します。
- ライブラリは、実際のオブジェクトから完全に分離されています。
- ライブラリは、他のすべてのゲームオブジェクトを必要以上に重くすることなく、好きなだけ強力にすることができます。たとえば、使用できるトランジションスタイルには多くの種類があることに気付くでしょう(たとえば、イーズアウト、イーズインなど)-それらすべてがベースオブジェクトの一部であったかどうかを想像してみてください。
- ライブラリを使用して何でもターゲットにできます。つまり、ライブラリ
AlphaThings
を使用するために例から拡張する必要はありません。
- 別のライブラリを切り離したり、別のライブラリと交換したりするのは、それが不要になったと判断した場合、またはより良いものを見つけた場合は、比較的簡単です。
AlphaThings
新しいプロジェクトからコードの断片を抽出する必要がなく、プロジェクト全体でライブラリを簡単に再利用できます。