人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: 子猫
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tsuka115
●200ポイント ベストアンサー

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

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

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

こういうことかな?


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


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


子猫さんのコメント
ありがとうございます。 ルートのタイムラインaをムービークリップ内のタイムラインで使いたいのですが可能でしょうか? 以下みたいな。 if (a == 0) { a = 1; }else { a = 0; }

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; とすればルート上の変数をムービークリップ内の変数に取り込めるはずです。

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

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ