この方法をstatic
とマークしました。つまり、クラスではなく、インスタンスに属しています。
class_Object.spawn()
しかし、これが意図されるものではないかもしれないが、実現を見ずに言うのは難しいです:あなたが言うように定義
は、メソッドを呼び出します。
static
キーワードを定義から削除すると、
インスタンスに添付され、説明した方法でアクセスできます。
件名のAdobeドキュメントについては、hereを参照してください。
あなたのコメントに答えるために、それについて考えるための簡単な方法は、「クラス」は「インスタンス」を作成するための青写真です。
したがって、new class_Object()
と言うときは、「青写真」に青写真の新しいインスタンスを「構築」するように指示します。側面では、インスタンス(またはインスタンスメソッド)で使用できるメソッド/プロパティを定義することができます。また、 "青写真"自体(または静的メソッド)で使用可能なメソッド/プロパティを定義することもできます。
したがって、たとえば次にCar
public class Car {
public function startEngine():void {
// This is an instance method, it will be available to
// any instance of a car, or new Car();
// Note: "this" in this context refers to the current instance of the car
// that the method is being called from
}
public static function compare(Car car1, Car car2):bool {
// This method belongs to the blueprint of a car
// Note: "this" doesn't make any sense in this context, because we
// aren't talking about a particular instance.
}
}
の古典的な例を使用して:あなたは他のクラスから「拡張」すると
var mercedes:Car = new Car();
var bmw:Car = new Car();
mercedes.startEngine(); // call an instance method. notice we call it from a particular instance of a car.
Car.compare(mercedes, bmw); // call an static method. notice we call it from the class of Car.
、あなたは「借入」他のクラスからの機能であり、独自の機能を追加/置き換えます。しかし、インスタンスを持っている限り、それが「パブリック」メソッドであれば、そのインスタンスが利用可能な場所から外部から利用可能になります。それがあなたのコメントに答えるのに役立つかどうかはわかりません。
私が見るああ、私は、静的クラスに純粋にそれを貼らそれをクリアするためのおかげで実現しませんでした。しかし、私が正しく理解していれば、それらは2つの別々のクラスであり、1つのインスタンスではありません。だから、私は、メインクラスのMovieClipを拡張し、私のオブジェクトクラスはスプライトを拡張しています。これは、メインファイルがオブジェクトファイルを拡張した場合にのみ機能します。助けてくれてありがとう! – Artharos
@Artharosがあなたのコメントをうまくカバーするために私の答えを更新しました。 –
これは間違いなく助けになりました。クラスの理解が深まっています。ありがとうございます!しかし、上記のようにオブジェクトクラスのインスタンスを起動して呼び出しているので、上記のようにメソッドを呼び出すと、エラーがスローされます。変数を設定してEnter_Frame関数内からメソッドを呼び出すことが重要であるかどうかはわかりません。すべきではありません。ああ、あなたがしたのと同じように静的メソッドを呼び出そうとすると、エラーが発生します。 '1061:未定義のメソッドを呼び出す'メソッド '静的型のクラスを持つ参照を介して'ありがとうございました。 – Artharos