0

私はこのような状況にあります。全部コードで作っていたのですが、ちょっと面倒なのでFlashの描画機能を使ってコンポーネントとのインターフェースを作りました。

いつものように、"AreaEdit" と呼ばれる MovieClip インスタンスのインターフェイスを持つメイン クラスを取得しました。私のカスタム クラス「EditorHTML」にはスプライトがあります。

private var dTela:Sprite;

したがって、コンストラクタは次のようになります。

public function EditorHTML(instEdit) {
    this.Parags = new Array();
    this.dTela = instEdit;
    trace("dTela: "+this.dTela.width+" x "+this.dTela.height);
}

メインクラスで:

Escrit = new EditorHTML(AreaEdit);

したがって、トレースは期待どおりにボックスの寸法を表示します。ただし、カスタム クラスで、次のように内部のインスタンスにアクセスしようとすると:

this.dTela.cxEdit.addEventListener(Event.CHANGE, atualizar);

次のエラーが返されます: /Library/WebServer/Documents/as3/bibliotecas_externas/com/gustavopi/txt/EditorHTML.as、49 行目 1119: 静的タイプの flash.display:Sprite を使用した参照を介した未定義の可能性のあるプロパティ cxEdit へのアクセス。

テストを行ったところ、同じインスタンス「cxEdit」がメイン クラスで利用可能です。そのため、コンポーネントのインスタンスがカスタム クラスで利用できないことがわかります。これを解決するにはどうすればよいですか?

4

2 に答える 2

1

次のように呼び出してみてください。

  Sprite( Sprite(this.dTela).getChildByName("cxEdit")).addEventListener(Event.CHANGE, atualizar);

その場合cxEditSprite

編集済み: cxEdit はTextArea. したがって、次のように実行できます。

var cxEdit:TextArea = TextArea(Sprite(this.dTela).getChildByName("cxEdit"));
cxEdit.addEventListener(Event.CHANGE, atualizar);

残りのコードを簡単にするために...

于 2013-06-07T20:31:01.750 に答える
0

私が見ることができることから、Sprite プロパティではない Sprite (dTela) のプロパティとして「cxEdit」にアクセスしようとしているため、エラーが発生します。

AreaEdit だけでなく、AreaEdit.cxEdit を引数として渡していただけないでしょうか。

于 2013-06-07T20:27:50.093 に答える