1

私は AS3 にはまったく慣れていませんが、以前に AS2 を何度も使用したことがあります。ボタンを作成してステージに配置し、クラス内にこれを追加しました:

    test.addEventListener(MouseEvent.CLICK, buttonClicked);
    function buttonClicked(ev:MouseEvent):void
    {
        trace("Clicked");
    }

ステージが見つからないため、これは機能しません。これを機能させる唯一の方法は、クラスではなくボタンと同じフレームにリスナーを配置することです。

しかし、この周りには離れているに違いありません。

ありがとうございました。エリ

更新 - エラー メッセージの追加

上記のコードをすべて外部クラスに保持すると、これらはエラーになります。

行 22 1120: 未定義プロパティ テストへのアクセス。行 22 1120: 未定義のプロパティ myButtonClick へのアクセス。

4

4 に答える 4

1

タイムラインを使用してドキュメント クラスを作成した場合は、「テスト」ボタンを最初のフレームに配置する必要があります。ドキュメントクラスは最初のフレームから実行を開始するためです。ステージで使用可能な場合にのみ、ボタン インスタンスにアクセスできます。

あ、言い忘れました。これらのインスタンスは、ドキュメント クラスでパブリック変数として宣言する必要があります。

public var test:SimpleButton;
于 2012-09-10T04:56:33.700 に答える
0

修理済み。

私はいつものように馬鹿げていました.initの中にそれらを置くのを忘れていました:|

この問題に遭遇する可能性のある人々のために。
作業コード:

    public function Main()
    {
        // constructor code
        test.addEventListener(MouseEvent.CLICK, myButtonClick);

    }
        function myButtonClick(ev:MouseEvent):void
    {
        trace("button Clicked);
    }

とにかく、助けてくれてありがとう、時には最も単純な答えが正しいものです。

エリ

于 2012-09-10T12:53:55.893 に答える
0

ステージ上のボタンのインスタンスに「test」という名前を割り当てましたか? あなたが投稿したエラーメッセージは、イベントリスナーを割り当てる「テスト」という名前のものが何もないことを示しているようです。

確認するには、ステージのボタンをクリックし、[プロパティ] タブを確認します。割り当てが必要な場合は、上部近くのテキスト ボックスに表示されます。

あなたが投稿した2番目のエラーは、最初にその名前の変数/関数を宣言/初期化せずに、「myButtonClick」と呼ばれるものを参照していることを意味します。それを宣言するか、何か他のものを参照するつもりなら修正する必要があります。

于 2012-09-10T11:53:55.373 に答える
0

以下に進んで、あなたがどちらの方法を持っていたか教えてください.

1) Document クラスはありますか? Flash IDE の [発行] タブの下の [ドキュメント プロパティ] にフィールドクラスがあります。そのフィールドにクラス名を指定すると、ドキュメント クラスと呼ばれます。

ドキュメントクラスがある場合は、コンストラクターボタンでもボタンのリスナーを作成できます。Flash は、あなたが得たようなエラーをスローしません。

2) 最初のフレームでクラスをインスタンス化した場合、addChildを使用してステージに追加するまで、ステージのプロパティはありません。また、ボタンにはアクセスできません。そのため、未定義のプロパティへのアクセスというエラーがスローされます。

于 2012-09-10T09:09:03.310 に答える