0

コンテナ スプライト内の MovieClip クラス インスタンス内の変数の値を編集しようとすると問題が発生します。

container.getChildAt(i).variable = value;ムービークリップはすべてスプライト「コンテナ」の子ですが、for ループ内で循環しようとするとエラーが発生します-

Scene 1, Layer 'AS', Frame 1, Line 87   1119: Access of possibly undefined property name_ through a reference with static type flash.display:DisplayObject.

これらの変数を編集するにはどうすればよいですか? 何がうまくいかないのですか?

4

1 に答える 1

3

おそらく問題は、getChildAt() が DisplayObject を返すことです。DisplayObject は動的クラスではないため、変数を任意に作成してアクセスすることはできません。一方、MovieClip は動的クラスであるため、実行しようとしているときに任意の変数を作成してアクセスできます。問題は、アクセスしているオブジェクトが MovieClip であることを知っていても、Flash はこれを認識せず、前述のように getChildAt() が返す DisplayObject の機能に制限されることです。

これを回避するには、扱っているオブジェクトが MovieClip であることを Flash に明示的に知らせる必要があります。これは、キャストと呼ばれるものによって行われます。

MovieClip(container.getChildAt(i)).variable = value;

オブジェクトが MovieClip になることを Flash に知らせたので、MovieClip が動的クラスであるという事実を利用して、変数にアクセスできます。

于 2012-08-16T02:39:05.263 に答える