保護されたtextField
プロパティでいくつかの追加機能を実装するために、TextAreaと継承を試しています。FlexでTextAreaのサブクラスを作成すると 'textField'がインスタンス化されないのはなぜですか?
サブクラスの新しいインスタンスを作成すると、このプロパティはnull
に設定されます。私はおそらくsuper()
の仕組みを誤解しているでしょうが、コンストラクタの終了後にインスタンス化されていると思いました。
はここTextArea
を延長コードの小さなスニペットです:
public final class ExtTextArea extends TextArea {
public function ExtTextArea() {
super();
}
public function testTextField():void {
if (textField == null)
Alert.show("null!");
}
}
}
呼び出し元のコードは単純です:
var extTextArea:ExtTextArea = new ExtTextArea();
extTextArea.testTextField();
ExtTestArea
でAlert
は、私はこのコードを実行するたびに表示されます。
これはなぜですか? textField
のプロパティにアクセスするためにもっと必要なことはありますか?
ポインタありがとうございます。テキスト領域が追加されたら、私は同じ動作を見たことがあります。 – bedwyr