0

ユーザーが何をクリックするかに応じて、さまざまな変数を設定する必要があります。これらの変数は、他のムービークリップからアクセスする必要があります。

問題は、クリックした時点で、それらの「他のムービークリップ」がまだタイムラインに存在しないことです。

私が行ったことは、変数を親のムービークリップに割り当てることですが、ルートに設定するのも同じくらい簡単だと思います。次に、関連するクリップが開始されたときにその値を取得します。

// set - works
MovieClip(parent).aMovieClip.someVariable = myVal;

// get? - doesn't work
getVar = MovieClip(parent).aMovieClip.someVariable;

上記は機能しません-必要なときにいつでもその値を取得する正しい方法は何ですか。グローバル変数を取得して設定する場合だと思います

4

2 に答える 2

0

オブジェクトがまだ存在しない間に、プロキシを使用して値を処理することができます。これらは、保留中の値で修正するために、MovieClipsにアクセスできるようになったときにのみ通知を受ける必要があります。

于 2009-09-18T00:47:33.050 に答える
0

からコピーされた回答:

http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/Q_22997849.html

AS3.0 では、_global 変数の概念が完全に削除されました。ただし、外部クラスを使用して、正確に AS2.0 _global として機能させることができます

適切に実装すれば、望ましい結果が得られるはずです。詳細は次のとおりです。

1. AS3.0 クラスを「glo.as」という名前で作成し、FLA と同じフォルダーに保存します。

2. 「glo.as」クラス ファイルに次のアクション スクリプトをコピー ペーストするだけです。

////////////
package
{
      //Class will act as _global object of AS2
      // Static variable "bal" of this class is going to store "varibales, instance's/object's referece to be used by any other class or displayObject/movieClip
      // sample code to store a reference of a movieClip
      //
      // glo.bal.myMovie = this.new_mc;
      //
      //
      public class glo
      {
            public static  var bal:Object = new Object();
      }
}
//////

3. "_global" の代わりに "glo.bal" を使用して、グローバル変数を任意の場所に作成します。

例えば:

glo.bal.myGlobalVariable = 22;

FLA や他のクラスのスコープ内のどこからでもアクセスできます。


信用 Aneesh Chopra http://www.experts-exchange.com/M_3631521.html

于 2009-09-17T11:31:12.307 に答える