推しミネラルウォーターはありますか?

FlashCS4でAS3.0を使用しております。
添付画像のように「画像レイヤー」には10フレーム毎に画像を入れてあります。50フレームですので5画像を入れてあります。「ラベルレイヤー」には、先の画像におのおのにラベルを付けてます。「ASレイヤー」には各画像を一時的に停めておくためのスクリプト「stop();」を記述してあります。(10、20、30、40、50フレーム)
このままですと、ムービーをプレビューした場合には(10フレームの)1枚目の画像が表示されて停止している状態になります。そこで、エンターキーを押すと2枚目の画像が表示されて停止…さらにエンターキーを押すと…3枚目の画像が表示されて停止…順番どおりの表示後停止となります。このムービーをプレビューした際に、画像がタイムラインの順番に関係なくランダムで表示されて、しかも一定時間停止(例えば10秒間)させた後、再びランダムで表示…10秒間停止後に三度ランダム…と言うようにエンドレスでランダムで表示させて10秒間停止後に、またランダム…のようにしたいのですが、1フレームのスクリプトの記述内容をご指導・ご指示願います。よろしくお願い致します。

「画像をランダムで表示させて一定時間停止さ」の質問画像

A 回答 (2件)

いったい何がしたくてどこへ行こうとされてるんだろう???



#1です。

> 「ムービークリップ内の各フレームに画像を置いて
> その表示フレームを変える」をしたかったのです。

そうしても見かけの動作は結局同じですよ。
10秒間隔(例) で表示が切り替わることには変わりありませんから問題解決にならないと思います。


> 実はタイムライン上にて別のアニメーションを設定しようと
> 考えておりますので

それだと
最初のご質問文の

> 一定時間停止(例えば10秒間)させた後、
> 再びランダムで表示…10秒間停止後

これと矛盾します。

結局,10秒とかいう秒数は関係なくて,
タイムラインのフレームに動作は依存させる必要があるのでしょう?

しかし
何度ご質問を読みなおさせてもらってもしたいことがわかりません。

> 画像がタイムラインの順番に関係なくランダムで表示されて、

やっぱり意味不明です。

意味不明なので,
見かけの動作は結局同じですが
> 「ムービークリップ内の各フレームに画像を置いて
> その表示フレームを変える」
スクリプトを書きます。


たとえば pic_mc というインスタンス名を付けたムービークリップをステージ上に配置して,
pic_mc 内の フレーム1 ~5 の各フレームに1枚ずつ5枚の画像を配置します。

root など pic_mc が存在するタイムラインのフレーム1のスクリプト↓。

----------------------------------------
//初回のみ実行させるためのif文
//もし変数 flg が true でなければ
if (!flg) {

//変数 flg を true にする
var flg:Boolean = true;

//関数 randomShowMC を定義
function randomShowMC ():void {
//変数 rnd に 1~5 のランダムな整数を代入
var rnd:int = Math.floor(Math.random() * 5) + 1;
//「pic_mc」をランダムなフレームで停止
pic_mc.gotoAndStop (rnd);
}

//関数 randomShowMC を 即実行
randomShowMC ();

//10000ミリ秒間隔でイベントを発生するTimerインスタンスを作成
var myTimer:Timer = new Timer(10000);

//関数 randomShowMC をイベント発生毎に実行するように設定
myTimer.addEventListener(TimerEvent.TIMER ,function(){randomShowMC()});

//タイマースタート
myTimer.start ();

//初回のみ実行させるためのif文終了
}
----------------------------------------
 
「画像をランダムで表示させて一定時間停止さ」の回答画像2
    • good
    • 0
この回答へのお礼

大変にすみません。自分の説明が悪い為に色々とお手数を掛けてしまいました。
そして、それでもいつもながら的確なご回答有難うございました。
このような内容をしたかったですので、大変に助かりました。
色々と有難うございました。

お礼日時:2010/04/21 21:01

画像を表示させる方法などたくさんあるので,


そこをどうすべきか判断できません。

画像を表示させる方法例とは例えば,
「ムービークリップ内の各フレームに画像を置いてその表示フレームを変える」
とか
「ライブラリの画像をステージ上に呼び出す」
とか
「SWF外に置いたJPEGなどをSWF内に表示させるとか」
とか
「ステージ上の画像の表示順(上下関係の順)を変える」
とか
まだまだ色々な方法があると思います。

それをこちらで決めるわけには行かないので答えにくいところです。




これくらいはできた方が良いという簡単な例で1つ書きます。

下の図↓のように
5枚の画像を5つのムービークリップに変換し,
その5つのムービークリップに「mc0」~「mc4」までのインスタンス名を付け
それら5つのムービークリップが存在するタイムラインのフレームに
次のように書いてみてはいかがでしょうか?

---------------------------------------
//関数 randomShowMC を定義
function randomShowMC():void {
//変数 i を 0~4 に変えてループ
for (var i:int=0; i<5; i++) {
//mc0~5を非表示にする
this["mc" + i].visible = false;
}
//変数 rnd に 0~4 のランダムな整数を代入
var rnd:int = Math.floor(Math.random() * 5);
//「mc○」のみ表示する
this["mc" + rnd].visible = true;
}

//関数 randomShowMC を 即実行
randomShowMC();

//10000ミリ秒間隔でイベントを発生するTimerインスタンスを作成
var myTimer:Timer = new Timer(10000);

//関数 randomShowMC をイベント発生毎に実行するように設定
myTimer.addEventListener(TimerEvent.TIMER ,function(){randomShowMC()});

//タイマースタート
myTimer.start();
---------------------------------------


「5枚の画像をすべて非表示にしておいてランダムな1枚だけを表示させる」
という方法です。

これだと,
座標の指定も簡単にできますし(単に置いた場所になる),
各画像の大きさがまちまちでも下の画像がはみ出て見えるということもないですし,
SWF外部やライブラリにまで及ぶ話ではなくなるので
比較的単純で簡単だと思います。
「画像をランダムで表示させて一定時間停止さ」の回答画像1

この回答への補足

BlurFiltanさん:
いつも的確なご回答を有難うございます。とても解り易いです。
確かにBlurFiltanさんの言うように、画像を表示させる方法って色々とあるのですね。余計な手間を掛けてしました。そしてお手数を掛けて本当にすみません…それなのに具体的な表示方法を説明していなくて大変に申し訳ございませんでした。
因みに、図のように「ムービークリップ内の各フレームに画像を置いてその表示フレームを変える」をしたかったのです。
今回のご指導の方法でも試した結果、問題は無いのですが、実はタイムライン上にて別のアニメーションを設定しようと考えておりますので、「ムービークリップ内の各フレームに画像を置いてその表示フレームを変える」の法がよりやりたい表示方法となります。
今回のも、とても勉強になりました。有難うございます。
もしよろしければ「ムービークリップ内の各フレームに画像を置いてその表示フレームを変える」の表示方法。タイムライン上に画像を置いていますフレームのランダムで移動の記述内容のご指導をお願い致します。よろしくお願い致します。

補足日時:2010/04/18 21:26
    • good
    • 0

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