0

追跡を切るために、私はこの機能が私の問題を引き起こしていると信じています.

function getRandomLabel():String {
    var labels:Array = new Array(24,62,49,74,37);
    var index:Number = Math.floor(Math.random() * labels.length);
    return labels[index];
}
this.gotoAndPlay(getRandomLabel());

この関数は上記の 5 桁 (24,62,49,74,37) をランダム化するために使用され、私のほくろ (5 つのほくろ) がランダムに表示されます。現在、もぐらたたきフラッシュゲームを制作中

現在のシーン: 2/3

どういうわけか、テストプレイすると、シーン 1 フレーム 1 にループバックします。

もう1つ、問題は、残りのコード(メニュー、メカニズムなど)があるシーン2に「適切なゲーム」を入れようとしたときに始まりました.

4

1 に答える 1

1

アンドリューが言ったように、あなたは何も求めていません。あなたは自分が持っているものを公開するだけで、何が起こっているのかを公開しませんでした. さて、あなたの機能には問題はありません。私は AS にかなり慣れていませんが、次のように書きます。

function getRandomFrame( frameNumbers: Array ): int {
    return frameNumbers[Math.floor( Math.random() * frameNumbers.length )];
}
gotoAndPlay( getRandomFrame( [24, 62, 49, 74, 37] ) );

ラベルではなくフレーム番号を取得しているため、名前を変更しました。gotoAndPlay を呼び出しているため、ムービーの「再生ヘッド」は選択したフレームに移動し、タイムラインの最後に到達するまで再生され、デフォルトではムービーが最初からやり直されます。アニメーションを停止する必要がある場合は、目的のフレームで停止を設定する必要があります。gotoAndPlay の代わりに gotoAndStop を使用してコードを試してください。ムービーはランダムなフレームに進み、停止します。フレーム ラベルを取得する必要がある場合は、文字列の配列を作成します。

function getRandomLabel( labels: Array ): String {
    return labels[Math.floor( Math.random() * labels.length )];
}
gotoAndPlay( getRandomLabel( ["car", "dog", "music"] ) );

あなたは Flash 初心者のようですので、扱っているツールをもっと勉強する必要があります ;) Flash CS5 のデフォルトの ActionScript バージョンは 3 番目です。

于 2012-08-12T03:59:11.460 に答える