グローバル変数を使うべき場合
メインのタイムライン以外に、ムービークリップ内でも参照したいような変数は、扱いが難しい。グローバルにしておけばいいのかと思えばこれは NG で、ムービークリップ内からは _root.hensu という形で参照するのが正解のようだ(まだこれが唯一の正解だと確信はできないが、この方法でうまく動くのは確か)。
ところが、変数の中にオブジェクトを格納する場合には事情が異なる。オブジェクト変数(便宜上そう呼ぶことにする)の場合はムービークリップ内から _root.obj のようにして参照しようとするとエラーになる。この場合はメインのタイムラインでグローバル変数に宣言しておいて、ムービークリップ内からは obj のように変数名だけで参照する。がしかし、誠にややこしいことにメインタイムライン上のフレームアクションでは _global.obj = xx のように頭に _global. を付けてやらないといけないようなのだ。
どうしてこんなにややこしいんだろう?恐らく僕がまだ変数のスコープやパスのルールをしっかり理解し切れていないということなんだろう。
ともあれ、吹き出しのポップアップが完成した。次は音をつけなきゃな。その前に「戻る」ボタンなんかも付けよう。
結果はこちら → http://yoropico.jp/sandbox/twitter_API_AS2_test06.html
課題:変数の参照の仕方、グローバル変数やオブジェクト変数についてよく調べてみること
追記:
その後、僕自身はグローバル変数はあまり使わなくなりました。メインのタイムラインでは var hensu=xx; のように変数を定義して、これをステージに配置した別のムービークリップから参照する必要がある場合には _root.hensu のようにして参照すればとりあえず事足ります。
ですが、グローバル変数がわざわざ用意されているからには便利な使い方があるはずです。もうちょっと勉強する必要がありそうです。(^_^;
また、Adobe 公認のワークショップの目次に「オブジェクト変数(タイムライン変数)」と書かれているので、オブジェクト変数=タイムライン変数と考えてよさそうです。
ActionScript の3種類の変数の使い方については、こちらがとても参考になります。→ 変数の種類とスコープ(有効範囲):Flash ActionScript入門ノート