- ベストアンサー
Actionscriptでのムービーとのタイミング処理
- FlashのActionscriptでのムービーとのタイミング処理について困っています。再帰の中でフレーム移動の関数を呼び出しているため、タイミング処理がうまくいかず困っています。
- ムービーの移動先フレームに目的の場所へ移動するムービーを呼び出して再生したいですが、最後のムービーだけしか表示されません。再帰の中でフレーム移動の関数を呼び出しており、タイミング処理の方法がわかりません。
- Actionscriptとムービー再生のタイミング処理についてアドバイスをいただきたいです。プログラムが得意ではないため、どうしたら良いのかわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
いまいち意味がよく分からないのですが どこか適当な所に変数をおいといて、その変数の値が1であればその変数に0を入れてムービー再生。再生が終了したら、ムービー側でその変数に1を入れる。 というような方法はどうですか?
その他の回答 (2)
- Tobiuo007
- ベストアンサー率100% (2/2)
これだとムービー再生と再起が並列に行われてしまうんじゃないですか ムービー側でムービー終了時にメインとなるスクリプトを呼び出すか もしくは メインとなる部分もムービーのループにしてサブムービーが終了したかどうかを判定させて再起処理を行うか くらいしか思いつかないです。
- Tobiuo007
- ベストアンサー率100% (2/2)
お役に立てず残念です。 以前の質問等を見させてもらったのですが、 クイックソートのシミュレーションを作ろうとされているのですね 私もその再起の中という所が、いまいち意味がよく分かりません。 提示された部分だけからでは。 いつどこで自らを呼び出すのか見えてこないというのもあります。
補足
// 用意された配列v_date[]をクイックソートする // 配列dのleftからrightまでの間のデータをクイックソートする関数quick function quick(d, left, right) { if (left>=right) { return; } trace("左は"+(left)); trace("右は"+(right)); var a = (left+right)/2; //基準値はとりあえず配列の中心の値で var b = Math.floor(a); //trace(b); var p = d[b]; trace("基準値は"+p); var l = left; var r = right; var tmp; while (l<r) { while (d[l]<p) { l++; } while (d[r]>p) { r--; } // ここで実際に○を移動させる Pofmaru1(l); Pofmaru2(r); if (l <= r) { // ここで値を交換 tmp = d[l]; d[l] = d[r]; d[r] = tmp; // ここで箱の移動が行われる trace("ソート過程"); print_data(d); l++; r--; } } if (left<r) { quick(d, left, r); } if (l<right) { quick(d, l, right); } } //配列内のデータ列を表示する関数print_data function print_data(d) { trace(d); } //最初の状態 v_data = [24, 26, 5, 21, 46, 7, 10, 33]; trace("ソート前の並び"); print_data(v_data); //最初の配列の状態を関数print_dataで表記 quick(v_data, 0, v_data.length-1); //配列v_dataを関数quickでクイックソートする trace("ソート後の並び"); print_data(v_data); //最後の配列の状態を関数print_dataで表記 といった感じです。
お礼
なるほど。ありがとうございます。試してみます。
補足
やろうとしてみたのですが、再帰の中であるしで、イマイチ良くわからなく上手く行きませんでした・・・・・。