0
"superClass"をサブクラス化し、そのいずれかの関数をオーバーライドしたいと考えています。swfからロードされたクラスをサブクラス化するには
public class superClass {
protected function f1(...) : Boolean {...}
protected function f2(...) : Boolean {...}
...
protected function f100(...) : Boolean {...}
}
public class subClass extends superClass {
// override f1 in the subclass
protected override function f1(...) : Boolean {...}
}
問題は、「スーパークラス」はswfファイルからロードされていることです。プロジェクトのクラス定義への参照がありません。下のようなことをする方法はありますか?
public class subClass {
private var superClassObject: Object;
// construct from an instance of superClass
public function subClass (s : Object) {
superClassObject = s;
}
private function myF1(...) : Boolean {...}
override InvokeFunction (fname: string, args: Array) : Object {
if (fname == "f1") {
return myF1(args);
} else {
return superClassObject.InvokeFunction(fname, args);
}
}
}
ASでの関数呼び出しの実装方法がわかりません。 "InvokeFunction"を何にする必要がありますか?
コンパイル時にサブクラス化するには、クラス定義への参照が必要です。さもなければ、あなたは何もサブクラス化しないようにコンパイラに要求しています....あなたの質問は意味をなさない。 –
サブクラスのコンストラクタで 'super()'キーワードを使用する –