ActionScript 3.0の変数で困っています。

エラー「1120: 未定義のプロパティ a へのアクセスです」がでて、シーン内で変数aを定義していますが、シンボル内でも同じ変数aは使えないのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/07/15 21:41:40
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tsuka115 No.1

回答回数96ベストアンサー獲得回数11

ポイント200pt

(1)ルートのタイムラインで
var a:int=0;

(2)ムービークリップ内のタイムラインで
var a:int=1;

(3)(2)のムービークリップのインスタンス名を mc01_mc とした場合
 ルートのタイムラインで
trace(mc01_mc.a);
とすると1が出力されます。

こういうことかな?


ところでエラーメッセージはムービークリップのプロパティaが定義されていないよ!
ってメッセージだと思います。


よくあるのが
シンボルをリンケージ設定して、ルートのタイムラインでインスタンスをスクリプトで生成
すると、生成直後にインスタンスのプロパティにアクセスしてもエラーが出る場合があります。
その場合は、onEnterFrameなどを使って生成してから1フレーム後にプロパティに
アクセスすると問題なくなる場合があります。
たぶんインスタンスを生成した直後は、まだインスタンスのタイムラインにある
スクリプトが実行されていないためと思われます。

他1件のコメントを見る
id:tsuka115

http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=7705&forum=20&post_id=38409

ムービークリップのタイムラインからルートのタイムラインの変数を読む場合は
ムービークリップのタイムラインに

//ルートオブジェクト:ルートデータ取得
var rootObj:Object = this.root as Object;
var a:int=rootObj.a;

とすればルート上の変数をムービークリップ内の変数に取り込めるはずです。

2012/07/11 21:41:56
id:manekinekoo

すみません、ありがとうございます。
いろいろやっていたら思ったより簡単にできました。
オブジェクトをクリックする度に入れ替わるだけの単純なものになってしまいましたが。

2012/07/15 21:41:22

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません