Pex Textbook 1.1.0 documentation

変数を外部から設定する

«  アニメーションを制御する   ::   Contents   ::   画像の差し込み/置換を行う  »

変数を外部から設定する

ここでは SWF に対して、外部から動的に変数を設定する処理について見ていきます。

setVariable

変数の設定は API の setVariable() 命令を用いて行います。

var api = pex.getAPI();

api.setVariable("","変数名","値");//ルートに変数を設定
api.setVariable("mc1","変数名","値");//mc1に変数を設定 ※注
api.setVariable("mc1/mc2","変数名","値");//mc1内のmc2に変数を設定 ※注

サンプル例

実際に変数をムービーに反映させるサンプルは以下です。

メッセージウィンドウに表示する内容をテキストボックス部分で変更できます。

_images/setVariable.png

動作サンプル: setVariable.html

fla ファイル: setVariable.fla

考察

タイムラインのフレーム移動が激しい(頻繁に gotoFrame させる必要がある) SWF を扱う場合などでは、 ルート以外の MovieClip に対し適切な変数設定タイミングが計りづらい事があります。 そのような場合はルート限定で変数の書き込みを行い、子 MovieClip 内の ActionScript から、 ルートの変数値を参照するスタイルを取ると処理が簡単になります。

※ MovieClip アクセスのタイミングについての詳しい考察は、下記ページを参照してください。

SWF の初期化を行う

補足

変数の値を取得する命令 getVariable メソッド 、いっぺんに変数値を設定するsetVariables メソッド、 いっぺんに変数値を取得する getVariables メソッドも存在します。 詳しくは API リファレンスを参照してください。

api.setVariables("mc", {a: 1, b: "foo", c: null});
api.getVariable("mc", "a");          // => 1
api.getVariables("mc");              // => {a: 1, b: "foo", c: null}
api.getVariables("mc", ["a", "c"]);  // => {a: 1, c: null}
api.getVariables("mc", ["a", "d"]);  // => {a: 1}

«  アニメーションを制御する   ::   Contents   ::   画像の差し込み/置換を行う  »