- ベストアンサー
外部データから_x座標に(Flash Lite1.1)
Flash Lite1.1において、外部データからムービークリップの_x座標を設定したいのですがどのようにすればできるのでしょうか?? 【abc.txt】 x=100&y=200 というテキスト外部データがあり。 ムービークリップの座標に設定したいのです。 以下ソースだけではできないのでしょうか?ご教授よろしくお願いします。 loadVariables("abc.txt",_root); _x = x; _y = y;
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Flash Player 6 以上でしたら, LoadVars.onLoad で外部テキストのロード完了がわかります。 Flash Player 5 以上でしたら, ムービークリップ内に外部テキストをロードした場合に限って ムービークリップ自体に書く onClipEvent(data){} で外部テキストのロード完了がわかります。 Flash Player 4(つまり Flash Lite)ではその両方がないのですから, 例のごとくフレームの グルグルループ でロード完了を待つしかないでしょう。 とにかく,外部テキストがロードされない限り, 外部テキスト内のデータはわからないわけですから, わからないうちに何かを外部テキストデータ通りにすることはできません。 フレーム の グルグルループ で, どこのフレームをグルグルループさせるべきかは 作るものによるので何とも言えません。 とりあえず Flash Lite では,外部○○ と通信するにはキーイベントが必要なわけですから, 少なくとも,loadVariables はボタンに書く必要がありますよね。 ボタンのフレームをグルグルループさせることはできませんから, 座標を動かすムービークリップのフレームをグルグルループさせることにします。 とりあえずボタンには次のように書きます。 ---_root のボタン------------------------- on(release){ loadVariables("abc.txt",_root); } --------------------------------------- 座標を変えるムービークリップ内のフレームを 少なくとも 2フレーム 以上にして, フレーム1 に次のように書きます。 ---ムービークリップ内フレーム1--------------- // もし _root の y が空白文字列ではない場合 if(_root.y ne ""){ // このムービークリップの座標を移動 _x = _root.x; _y = _root.y; // そしてこのムービークリップの再生を停止 stop(); } --------------------------------------- そしてフレーム2にキーフレームを作って, フレーム2 には次のように書きます。 ---ムービークリップ内フレーム2--------------- gotoAndPlay(1); --------------------------------------- これで, _root の変数 y に何かが入るまで ムービークリップ内のフレーム1と2はグルグルループ再生され, 外部テキストがロードされ次第ループ再生は停止します。 もっとも ムービークリップ内フレーム1 の stop(); は単なる1つの例です。 stop(); ではなく gotoAndPlay(3); などにしても良いですね。
お礼
loadVariablesはボタンに書く必要があったんですね! ご丁寧な解説ありがとうございました。 無事座標取得できました。