プロが教えるわが家の防犯対策術!

スクリプトの途中だけの部分ですが
再帰の中で
// ここで実際に○を移動させる
Pofmaru1(l);
Pofmaru2(r);

再帰の外で
// maru1を移動させる関数Pofmaru1
function Pofmaru1(l) {
if (l == 1) {
gotoAndPlay("maru1",2);
}else if (l == 2) {
・・・・・・

// maru2を移動させる関数Pofmaru2
function Pofmaru2(r) {
if (r == 1) {
gotoAndPlay("maru2",2);
}else if (r == 2) {
........

として、移動先のフレームにmaru1,maru2を目的の場所へ移動するムービーを呼び出して再生するようにしたいと思いました。
しかし、最後のムービーだけしか表示さえれない状態です。if文で指定のフレームへ移動してそのムービーが再生されてから、次のプログラムの動きへ移るようにしたいと思いました。そこでタイミング処理をすればいいのではないかと思ったのですが、いろいろ調べてみたのですが、プログラムがあまり得意では無く、再帰の中でフレーム移動の関数を呼び出しているので、どうしたらいいのかわからず行き詰ってしまい困っています。Actionscriptとムービー再生のタイミング処理はどうしたらいいのでしょうか?
アドバイスください。お願いします。

A 回答 (3件)

いまいち意味がよく分からないのですが


どこか適当な所に変数をおいといて、その変数の値が1であればその変数に0を入れてムービー再生。再生が終了したら、ムービー側でその変数に1を入れる。
というような方法はどうですか?

この回答への補足

やろうとしてみたのですが、再帰の中であるしで、イマイチ良くわからなく上手く行きませんでした・・・・・。

補足日時:2005/11/29 21:16
    • good
    • 0
この回答へのお礼

なるほど。ありがとうございます。試してみます。

お礼日時:2005/11/27 18:43

お役に立てず残念です。



以前の質問等を見させてもらったのですが、
クイックソートのシミュレーションを作ろうとされているのですね

私もその再起の中という所が、いまいち意味がよく分かりません。
提示された部分だけからでは。
いつどこで自らを呼び出すのか見えてこないというのもあります。

この回答への補足

// 用意された配列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で表記

といった感じです。

補足日時:2005/11/30 20:19
    • good
    • 0

これだとムービー再生と再起が並列に行われてしまうんじゃないですか



ムービー側でムービー終了時にメインとなるスクリプトを呼び出すか
もしくは
メインとなる部分もムービーのループにしてサブムービーが終了したかどうかを判定させて再起処理を行うか

くらいしか思いつかないです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!