0

私はボタンを持っています、それはクラス、例えば、ボタンです。そして、テキストフィールドのすべての変更を確認できるメインドキュメント(クラスMain)は、フレームごとに更新されます(ええ、trace()は好きではありません)。ボタンには、メインファイルで使用されている変数を変更する機能があります。したがって、メインファイルをステージに追加するボタンを押すと、その機能が機能する必要があります。Buttonクラスにはthis.addEventListener(MouseEvent.CLICK、function)があり、さらに関数がメインクラスからvarに追加されます。したがって、追加した場合は、テキストフィールドに変更が表示されます。グラフィックエディタで直接追加したオブジェクトによって行われた変更が表示されますが、子を追加したボタンからの変更はありません。変数は公開されています。関数はすべて公開されています。それで...

クラスは変数を自由に交換できませんか?

別のクラスの関数を介して変数を変更するにはどうすればよいですか?

たぶん私はvarをエクスポートしてインポートする必要がありますか?それらはすべて、すべてのパブリック変数を共有する統合プログラムとして機能すると思いました。

メイン:変数iを作成し、ボタンの子をステージに追加して、フレームごとにiを表示します= D

ボタン:あなたが私を押すと、私はi=Dに1を追加します

SherWood:メイン、YUはiを表示しません、ボタンによって変更されましたか?T_T

コード例:

http://piratepad.net/g5tTMFX4Bo

4

1 に答える 1

1

ボタン (またはその他のクラス) には、そのインスタンスを使用している環境に関する知識が組み込まれていません。

DisplayObject の祖先には、プロパティを介して親コンテナと「メイン」コンテナをチェックする機能がparentありstageます。

プログラマー (あなた) の役割は、任意の 2 つ (またはそれ以上) のクラスが持つ必要がある情報を交換するための柔軟な方法をコーディングすることです。

そのため、ボタン (ボタンのインスタンス) がクリックされたことをメインが知る必要がある場合は、クリック イベントのためにそのボタンにリスナーを追加します。i

たとえば、Button が最新の値を提示する必要がある場合、公開されたメソッドを介して Main がそれを実行できます。たとえばmyButton.setLabel("Value of i="+i);、前述のクリック リスナーで実行される可能性があります。

よろしく

于 2013-02-28T10:15:59.933 に答える