0

これがコードです

ドキュメント クラス:

menu.more.addEventListener(MouseEvent.CLICK, More_func)
function More_func (e:MouseEvent):void
{
    showmore.visible = true;
}

menu は、ドキュメント クラス内のムービークリップのインスタンス名です。more は、ムービークリップ内のボタンのインスタンス名です。showmore は別のムービークリップのインスタンス名です。

このコードをメニュー クラスに転送したいと考えています。単純にコピー/貼り付けするだけです。しかし、「未定義のプロパティ showmore へのアクセス」というメッセージが表示されます。

そこで、外部オブジェクト (この場合は showmore) を別のムービークリップ クラス (この場合はメニュー) に使用する方法を尋ねています。

ドキュメントクラスにある場合、コードは正常に機能します。

4

1 に答える 1

1

ショーモアのために親に行く必要があるようですね。このコードをメニュー クラスにコピーすると、showmore を参照するとメニュー クラスでコードが検索されます。

メニュー クラスからドキュメント クラスを参照できる必要があります。これにはいくつかの方法があります。

  1. (menu と showmore が両方とも表示リストのドキュメント クラスの子であり、showmore がパブリック オブジェクトである場合) 親プロパティをキャストする必要があります。そうしないと、コンパイル エラーが発生します。

    DocumentClassName(parent).showmore.visible = false;

  2. IN YOUR DOCUMENT CLASS で利用できるドキュメント クラスに静的変数を作成します。

    public static var me:DocumentClassName;

ドキュメントクラスのコンストラクターで:

me = this;

あなたのメニュークラスで More_func:

DocumentClassName.me.showmore.visible = false;
于 2012-08-01T23:52:52.707 に答える