• 締切済み

Flash MX (Win XP) にて、一つのシーンに複数のMovi

Flash MX (Win XP) にて、一つのシーンに複数のMovieClip(MC1,MC2,MC3)を配置し、keypress を用いて キー入力に対応させてMCのそれぞれを表示させ、一度再生させたものは、以後再生させないようにしたいと思っています。 Flash初心者の故、解決のための手がかりを御教授ください。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

具体的な状況(何をしたら何をどうしたいのか)がよくわかりませんが _root(メインのタイムライン)に 「mc1」「mc2」「mc3」というインスタンス名を付けたムービークリップがあったとし, その 「mc1」「mc2」「mc3」 内のタイムラインの動きを キー「1」「2」「3」によって再生させる場合の _root の フレーム に書くスクリプト例↓。 --------------------------- //mc1 の再生を停止 mc1.stop(); //mc1 を非表示にする mc1._visible = false; //フラグとなる変数 flag1 を false にしておく var flag1 = false; //mc2 の再生を停止 mc2.stop(); //mc2 を非表示にする mc2._visible = false; //フラグとなる変数 flag2 を false にしておく var flag2 = false; //mc3 の再生を停止 mc3.stop(); //mc3 を非表示にする mc3._visible = false; //フラグとなる変数 flag3 を false にしておく var flag3 = false; //キーを監視するためのオブジェクトを作成 var keyLsn = new Object(); //何かキーを押したときに実行する関数を定義 keyLsn.onKeyDown = function() { //ムービープレビュー時のキーコード検証用 trace(Key.getCode()); //もしキーコードが 97 で flag1 が false のとき if (Key.getCode() == 97 && !flag1) { //mc1 の再生を開始 mc1.play(); //mc1 を表示する mc1._visible = true; //フラグとなる変数 flag1 を true にする flag1 = true; //もしキーコードが 98 で flag2 が false のとき } else if (Key.getCode() == 98 && !flag2) { //mc2 の再生を開始 mc2.play(); //mc2 を表示する mc2._visible = true; //フラグとなる変数 flag2 を true にする flag2 = true; //もしキーコードが 99 で flag3 が false のとき } else if (Key.getCode() == 99 && !flag3) { //mc3 の再生を開始 mc3.play(); //mc3 を表示する mc3._visible = true; //フラグとなる変数 flag3 を true にする flag3 = true; } }; //KeyクラスのリスナーとしてkeyLsnを登録 Key.addListener(keyLsn); --------------------------- ※ActionScript 1.0   Flash MX 以上 で使用可のスクリプト Flash でキーを押したかどうかを取得するには Flash(SWF)にフォーカスが当たっている必要があります。 パブリッシュ で作成したり 「制御」→「ムービープレビュー」で動作させる場合は Flash が表示されている部分を一度クリックしてからキーを押してください。  

mazumy
質問者

お礼

BlurFiltan様  ご親切な解説に感謝しております。お蔭様で前進させることができました。実現させたい動作の説明が不十分の中での回答でありながらご教示して頂き、感謝するばかです。  MC1~3はムービーなのですが、現時点でそのムービーの冒頭だけは静止画像として表示されるのですが、ムービーの再生には至りません。MCと一言で言ってしまったのがまずかったと思うのですが、ムービーの再生処理に繋げる方法などありましたら、引き続いてヒントをいただけたら幸いです。

関連するQ&A

専門家に質問してみよう