• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクションスクリプトを教えてください)

アクションスクリプト勉強中の初心者がキーボードを押し続けると音楽が流れるスクリプトを作りたい

このQ&Aのポイント
  • 初心者のアクションスクリプト勉強中ですが、キーボードの特定のキーを長押しすると音楽がループ再生され、離すと止まるスクリプトを作りたいです。スクリプトのバージョンは2.0か3.0のいずれかでお願いします。
  • スクリプトの組み合わせ方が分からず困っています。初心者なので、サンプルやflaファイルのURLなどを教えて頂けると助かります。お手伝いいただけると嬉しいです。
  • 図々しいお願いになるかもしれませんが、どなたか助けていただけるとありがたいです。初心者のため、どうかよろしくお願いします。

質問者が選んだベストアンサー

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

> スクリプトは2.0か3.0しか使用経験がないので、 > どちらかですと助かります。 ActionScript 1.0 を拡張したのが 2.0 であって ActionScript 2.0 がわかれば同時に ActionScript 1.0 もわかるということになります。 ActionScript 3.0 は 2.0 や 1.0 とは違います。 というわけで何だかよくわかりませんが 適応範囲の広い ActionScript 2.0 で回答することにします。 まず「音楽」は すでに Flash(FLAファイル) のライブラリ内に読み込まれていて そのライブラリ内の「音楽」シンボル に 「識別子」として「mySound」という名前を付けているものとします。 ※参考↓ 「FN0402003 - Sound.attachSound()メソッド - Flash テクニカルノート」 http://www.fumiononaka.com/TechNotes/Flash/FN0402003.html 単に音楽を鳴らすだけでしたら 上のページに書かれてある3行のスクリプト(ActionScript 1.0)で音は鳴りはじめます。 ですから上のページのスクリプトを キーボード操作で実行させるようにすれば良いと言うことになります。 というわけで テンキーの「5」が押された2秒後に音楽を流す場合の フレームに書くスクリプト例です↓。 //========================================== //キーを監視させるオブジェクトを作成 var key_obj:Object = new Object(); //キーの状態を示すフラグを用意 var key_flg:Boolean = false; //インターバルIDを入れる変数の宣言 var id:Number; //Soundオブジェクト をこのタイムラインに作成 var my_sound:Sound = new Sound(this); //Soundオブジェクト に「mySound」を割り当てる my_sound.attachSound("mySound"); //キーを押したときに実行する関数の定義 key_obj.onKeyDown = function():Void { //もし key_flg が false であり if (!key_flg) { //もし押されたキーがテンキーの「5」であれば if (Key.getCode() == 101) { //2秒(2000ミリ秒)後に intervalFunc を実行 id = setInterval(intervalFunc, 2000); } // key_flg を true にする key_flg = true; } }; //キーを放したときに実行する関数の定義 key_obj.onKeyUp = function():Void { // key_flg を false にする key_flg = false; //my_sound の再生を停止 my_sound.stop(); //setInterval を解除 clearInterval(id); }; //インターバルを開けて実行する関数の定義 function intervalFunc():Void { //my_sound の再生を開始(0秒から,1000回ループ) my_sound.start(0, 1000); //setInterval を解除 clearInterval(id); } //key_obj を Key のリスナーとして登録 Key.addListener(key_obj); //========================================== ◎ActionScript 2.0   Flash MX 2004 以降で使用可   Flash Player 6 以上でパブリッシュ可 なお, HTML に貼り付けた Flash(SWF) をブラウザで閲覧する場合 その Flash にフォーカスが当たっていないと Flash でキーボードイベントは受け取れません。 したがって Flash 内に「スタート」ボタンを置いて閲覧者に一度 Flash をクリックしてもらうとか 何かそういう工夫をする必要があります。 Google検索例「Flash フォーカス」 http://www.google.co.jp/search?hl=ja&source=hp&q=Flash+%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AB%E3%82%B9

tm2an
質問者

お礼

とても丁寧にわかりやすく教えていただきまして、ありがとうございます!! 感謝の気持ちでいっぱいです!早速制作に取り組みますね! 本当にご親切にありがとうございました^^

関連するQ&A

専門家に質問してみよう