2つのボタン(A,B)とそれぞれに対応したムービー(A,B)を用意しました。ボタンAにマウスカーソルを重ねるとムービーAが開始され、ボタンBにマウスカーソルを重ねるとムービーBを開始するというものを作りました。
しかし、ボタンAにマウスカーソルを重ね、ムービーAの再生中にボタンBにマウスカーソルを重ねるとムービーBが開始されるのですが、ムービーAが再生中でも消えてしまいます。この時、ムービーAを最後まで再生させたい場合はどのようにしたらよいのでしょうか?
タイムライン上ではムービーAをフレーム1、ムービーBをフレーム2と連続して配置し、ボタンA,Bにマウスを重ねたときそれぞれのフレームにgotoAndPlayを指定しています。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ムービーAとBを同時に表示しておき、それぞれの再生用のボタンにカーソルが重なった時に再生される、といったものでよろしいでしょうか?
フレーム1にムービークリップAとB、ボタンAとBを配置し、ムービークリップAとBにそれぞれインスタンス名を付けます。ここでは仮に、clip_A と clip_B という名前にします。
ボタンAに、次のようなスクリプトを書きます。
(↓以下のスクリプトをコピーして使う場合は、各行頭の全角のスペースを、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります)
on(rollOver)
{
clip_A.gotoAndPlay( 1 );
}
ボタンBには、clip_A の部分を clip_B に変えて、同様のスクリプトを書きます。
ムービークリップが自動的に再生されたのでは困りますので、最初は止めておきましょう。
”最初の1度だけ”実行すればいい処理は、onClipEvent の load イベントを使います。load は、ムービークリップがステージに登場した、その時1回だけ発生するイベントです。
ステージにあるムービークリップAとB(のインスタンス)に、それぞれ次のようなアクションを設定します。
//最初は止めておく
onClipEvent(load)
{
this.stop();
}
このままですと、ボタンにカーソルが重なった時にAが繰り返し再生されます。また、Aが再生中にもう1回ボタンAにカーソルが重なると、再生中でもまたAの最初から再生されてしまいます。
Aを1回だけ再生して止めるようにするには、ムービークリップAのシンボルのタイムラインの最後に、stop(); を入れてください。メインのタイムラインではなく、A自身が持っているタイムラインですので、ご注意を。
Aが再生中にボタンAにカーソルが重なった時、最初に戻らず無視するようにするには、変数を使ってAが再生中かどうかの情報を保存しておき、この値を if 文で判断して、再生されていない時だけ gotoAndPlay を実行します。
メインのタイムラインのフレーム1に次のようなスクリプトを設定して、変数を用意します。
a_flg = false;
b_flg = false;
状態を保存しておいて、その値によって分岐するような使い方をする変数は、フラグとも呼ばれます。ムービークリップAとBそれぞれのフラグを用意します。
Aが再生中の時は a_flg に true を入れ、再生していない・再生が終わった時には false を入れるようにします。そして、ボタンAにカーソルが重なった時は、a_flg が false だった場合だけ、clip_A.gotoAndPlay を実行します。
すると、ボタンAに設定するスクリプトは次のように変わります。
on(rollOver)
{
//再生中でなければ、Aを再生
if( a_flg == false )
{
clip_A.gotoAndPlay( 1 );
//Aが再生中であるという情報を記録
a_flg = true;
}
}
最初は a_flg の中身は false ですので、最初にボタンAにカーソルが重なった時はこれで上手くいきます。
しかし、1度ボタンAの上にカーソルが重なってAが再生されると、a_flg の中身は true に変わります。以降、ボタンにカーソルが重なっても if 文の条件は不成立になりますから、Aは再生されません。
カーソルが重なる度に再生できるようにするには、Aの再生が終了した時に、a_flg を false に直す必要があります。
Aの再生が終わる場合とは、Aのタイムラインが最後まで再生された時、つまり、先ほど stop(); を入れたフレームです。このフレームに、
_parent.a_flg = false;
というスクリプトを設定します。
_parent は親(1つ上の階層)のタイムラインを参照する時に指定するものです。
a_flg はメインのタイムラインにある変数で、メインのタイムラインとは、clip_A から見ると親にあたります。その、親の持つ変数を参照するには、親までのターゲットパスが必要になります。
さしあたって、こんなところでいかがでしょうか。
長くなってすみませんでした。
不明な点がありましたら、補足してください。
ありがとうございます!
望んでいた動きができたので非常に感謝しております。
詳しくわかりやすいご説明ありがとうございました。
今後また質問させていただくことがあるかもしれませんが、そのときはまたよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) micro soft teamsのカメラ設定について 1 2023/05/25 18:07
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- iPhone(アイフォーン) アルバムがいくつかあって例えばAのアルバムのビデオを B〜Eに《アルバムに追加で移動させるとAには当 2 2023/01/31 15:45
- 据え置き型ゲーム機 ロックマンX4について。 ロックマンX4のX編の最初のムービーで、シグマとジェネラルが面談しており、 1 2023/02/11 07:48
- iPhone(アイフォーン) iPhoneSE3の自撮りなどに使う内側カメラは60fpsのムービー撮影に対応していますか? 1 2022/05/07 11:27
- 洋楽 この投稿の1番最後?の人のムービーに流れる「fu〜 fu 〜fu〜」ってメロディーの曲はなにかわかり 2 2023/08/06 07:31
- 映画館 今週28日(金)の午前中に 東京都心の映画館にて 【名探偵コナン】を観た後に その日公開の映画【ザ・ 1 2023/04/24 15:03
- 犬 尾っぽ切り 3 2023/06/23 14:35
- 洋画 トランスフォーマー・ビースト覚醒※ネタバレあり 4日にトランスフォーマー・ビースト覚醒を鑑賞しました 2 2023/08/05 13:04
- 写真 26000枚の写真とムービーをエアドロップで送ることって可能だと思いますか? 1 2023/08/25 16:04
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ホームページの画面文字を濃く...
-
既存画像(gif または png)の背...
-
グリッドレイアウトHTMLとCSS
-
友達にドッキリをしたくて、ホ...
-
ホームページビルダーを複数の...
-
保存したホームページのファイ...
-
横にリンク先を3つ並べたいのです
-
ホームページビルダーで(一部...
-
FFFTPでサーバに新規フォルダが...
-
XREA使用で作成したHTMLファイ...
-
アニメ公式サイト風なWebページ...
-
ビルドとリビルドの違いを教え...
-
ホームページビルダー
-
ホームページ作成
-
HTMLで、ホームページが作れる...
-
ページの内容コピペ 範囲が広い...
-
ビフォアーアフターのページは...
-
無料でホームページを作成した...
-
ホームページビルダー21で作成...
-
入社1年半目です。自習でシェア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpで音を鳴らす
-
複数のJavaScriptを順番に実行...
-
Gifアニメの再生について(検索...
-
PHPで、キャラクター画像とセリ...
-
複数のsoundを1つのon/offボタ...
-
サウンドのフェードイン・アウト
-
WindowsMediaVideoをインライン...
-
Flashゲームのセーブ機能の作り方
-
webサイトに動画をはりつけ、ク...
-
ホームページに再生ボタン
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
フレーム内のオプションボタン...
-
【C#】wavファイルの複数同時再生
-
VB6のスクロールバー付きフレー...
-
C#でDLLファイル読み込みを行う...
-
VBで動的に作成したパネルの上...
-
cisco catalystのトラブルシュ...
-
車の運転時のメガネ 縁なし(...
おすすめ情報