重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

現在、あるコンテンツ製作していて、
画面上に5個画像(ムービークリップ)を表示しています。
そのムービークリップのなかには、グラフィックが10個入っていて、

targetFrame = Math.ceil(Math.random()*10);
this.gotoAndPlay(targetFrame);

というスクリプトで10個のフレーム中からランダムに表示させています。
(画面上の5個の画像は、その1個ずつが10個(フレーム)の中からランダムに選ばれるので、
5個の中には、同じ画像(同じフレーム)が含まれる場合があります。)

画面上に、あと2個画像(ムービークリップ)を追加し、その2個も、
10個のグラフィック(フレーム)中からランダムに表示させたいのですが、
かならず2個とも同じグラフィック(同じフレーム)を選ばせるにはどうすればよいでしょうか?

Flash歴は長いのですが、知識はあまりない馬鹿な私に教えてやってください。

A 回答 (1件)

>2個とも同じグラフィック(同じフレーム)を選ばせる


ということですが、その2個のMCは
(1)常に同じMCなのか
(2)7個のうちランダムで選ばれるのか
によってちょっと違ってきます。

ルート上にmc0~mc6というインスタンス名のMCが7つあるとして、
以下のASをルートのフレームに記述します。

//各MCの画像(フレーム)をランダムで選ぶ
for (var i = 0; i<=6; i++) {
targetFrame = Math.ceil(Math.random()*10);
this["mc"+i].gotoAndStop(targetFrame);
}

//(1)の場合。例)常にmc5とmc6の画像が同じ。-------------------------
targetFrame = this.mc5._currentframe;
this.mc6.gotoAndStop(targetFrame);

//(2)の場合。------------------------------------------------------
targetMC1 = Math.floor(Math.random()*7);
do {//同じMCが選ばれないように
targetMC2 = Math.floor(Math.random()*7);
} while (targetMC1 == targetMC2);
targetFrame = this["mc"+targetMC1]._currentframe;
this["mc"+targetMC2].gotoAndStop(targetFrame);

//確認
trace("mc"+targetMC1+"とmc"+targetMC2+"は"+targetFrame+"フレーム目の画像");
    • good
    • 0

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