AS2でキーによる音楽制御について

このQ&Aのポイント
  • AS2でキーを使用して音楽を制御する方法を教えてください。
  • 必要な条件を満たすためのAS2でのキーによる音楽制御方法について詳しく教えてください。
  • AS2を使用してキーを使って複数の音楽を制御するための方法を教えてください。
回答を見る
  • ベストアンサー

AS2でキーによる音楽制御について

AS勉強中で初心者の者です。 今回キーによる音楽制御を勉強しておりまして、不明点がありますので教えてください。 環境はwindows、Flash5.5、AS2です。 内容はAキーを押すと音楽がループ再生し、Bキーを押すと音楽が停止するもの。また他のキーを使って複数の音楽を同時再生、そのうちの1つの音楽のみを停止させる等、複数の音楽をそれぞれ制御できるものを制作したいです。 現在ライブラリにボタン1とボタン2、リンゲージ設定されたsoundAを用意し、シーン1にボタン1を配置し、ボタン1に on (release) { soundObj.start(0, 100); } を書きました。 同じようにシーン1にボタン2を配置し、ボタン2に on (release) { soundObj.stop("soundA"); } を書きました。 そして、シーン1のタイムライン1フレーム目に soundObj = new Sound(); soundObj.attachSound("soundA"); を書きました。 これではステージ上のボタン1、2をマウスクリックすることで音楽を制御することになります。 これをキーで制御したいのですが、どのようにすればいいのでしょうか? 自分なりに模索したのはon (release) をonClipEvent(onKeyDown)にすればいいのか(←これだとAキー等の指定はどうすればいいか?)、on (release) ではなくKey.isDown(65);を使うのか(これは動かなかったので、何かた足りないのか?)です。 後はそもそもキーで制御する際はボタンではなく、ムービークリップの方がいいのでしょうか? 説明が下手で至らない点もあるとは思いますが、どうぞよろしくお願いします。

  • tm2an
  • お礼率75% (3/4)
  • Flash
  • 回答数2
  • ありがとう数1

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

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

#1です。 #1の【補足】を読ませていただきましたが, 8種類の音を別々に鳴らすのでしたら 少なくとも8個のSoundオブジェクトが必要になると思います。 var soundObjA:Sound = new Sound(); soundObjA.attachSound("soundA"); var soundObjB:Sound = new Sound(); soundObjB.attachSound("soundB");  …略… var soundObjH:Sound = new Sound(); soundObjH.attachSound("soundH"); ↑このように。   しかし..., 8種類の音を制御するにしても 結局,具体的に「何をしたときに何をどうしたいのか」がわかりませんので それ以上あまり具体的なことは書けませんよ。。。 具体的な動作がわからないので, キー「A」「B」「C」「D」「E」「F」「G」「H」を押したときに それぞれに対応する音が流れ テンキーの キー「0」「1」「2」「3」「4」「5」「6」「7」を押したときに それぞれに対応する音(0ならAの音,1ならBの音)が止まる。 というルールで行くものと勝手に決めます。 また,複数の音は同時に鳴ることがあるものとします。 【動作例1】 キー「A」を押してキー「B」を押すと, 「Aの音」が鳴りさらに「Bの音」が重なって鳴る。 【動作例2】 キー「A」を押してキー「B」を押してキー「0」を押すと, 「Aの音」が鳴りさらに「Bの音」が重なって鳴り「Aの音」が消え「Bの音」だけが残って鳴り続ける。 このようなものを作成する場合の方法例ですが, まず各音シンボルのリンケージで 8つある音に,0 からの連番付きの識別子を付けます。 「sound0」,「sound1」,……,「sound7」 ※↑「soundA」,「soundB」,……,「soundH」ではありません。 そうしておいた上で, シーン1のタイムライン1フレーム目に次のスクリプトス(例)を書きます。 ActionScript 2.0 です。 //------------------------------------------- //この階層を変数化 var me:MovieClip = this; //変数 i を 0~7 の間で 1 ずつ加算しながらループ for (var i:Number = 0; i<=7; i++) { //Soundオブジェクト「sound_obj0」~「sound_obj7」を作成 me["sound_obj" + i] = new Sound(); //各Soundオブジェクトに各音を割り当てる me["sound_obj"+i].attachSound("sound"+i); //各音の再生フラグ「sound_flg0」~「sound_flg7」を用意 me["sound_flg"+i] = false; } //キーを監視させるオブジェクトを作成 var key_obj:Object = new Object(); //キーを押したときに実行する関数の定義 key_obj.onKeyDown = function():Void { // //押されたキーコードを保存 var key_num:Number = Key.getCode(); // //押されたキーコードが65~72(キーがA~H)の間であれば if (key_num>=65 && key_num<=72) { //さらにそのキーの音に対応するフラグが false であれば if (!me["sound_flg"+(key_num-65)]) { trace("sound_obj"+(key_num-65)); //そのキーに対応する音を再生 me["sound_obj"+(key_num-65)].start(0, 100); //その音に対応するフラグを true にする me["sound_flg"+(key_num-65)] = true; } //押されたキーコードが96~103(キーが1~7)の間であれば } else if (key_num>=96 && key_num<=103) { trace("sound_obj"+(key_num-96)); //そのキーに対応する音を停止 me["sound_obj"+(key_num-96)].stop("sound"+(key_num-96)); //その音に対応するフラグを false にする me["sound_flg"+(key_num-96)] = false; } }; //key_obj を Key のリスナーとして登録 Key.addListener(key_obj); //------------------------------------------- me["sound_obj" + i] などで使っている [ ] を「配列アクセス演算子」と言います。 また,各キーとキーコードには次のような規則性があります。 キーA=コード65→ 65+0 キーB=コード66→ 65+1 キーC=コード67→ 65+2 キーD=コード68→ 65+3 キーE=コード69→ 65+4 キーF=コード70→ 65+5 キーG=コード71→ 65+6 キーH=コード72→ 65+7 キー0=コード96→ 96+0 キー1=コード97→ 96+1 キー2=コード98→ 96+2 キー3=コード99→ 96+3 キー4=コード100→ 96+4 キー5=コード101→ 96+5 キー6=コード102→ 96+6 キー7=コード103→ 96+7 この規則性を利用してスクリプトを簡素化しています。

tm2an
質問者

お礼

何度もありがとうございます!! 希望の動作はBlurFiltanさんに仮定していただいた通りです。 スクリプト中にもご丁寧なコメントをしていただけたので、初めて見るスクリプトでしたがどんな処理がされるのかが、初心者の私にもよくわかって助かりました!! 今後の学習にも活かすことができ、大変嬉しく思います。 ご親切かつわかりやすい説明を本当にありがとうございました!!

その他の回答 (1)

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

まず, ご使用の Flash のバージョンは Flash5.5 ではなく Flash CS 5.5 ですよね? Flash 5.x(西暦2000年バージョン) では ActionScript 1.0 の中でも最も初期のスクリプトしか使えません。 あと, 書かれていらっしゃるスクリプトの soundObj.attachSound("soundA"); の括弧内にある soundA の最初の s が 全角の s になっていますが これは間違いで半角の s ですよね? そういうこととして以下を書きます。     > これをキーで制御したいのですが、 > どのようにすればいいのでしょうか? すでに作ってあるボタンを使うのでしたら 次のようにすれば良いと思います。 //---シーン1のタイムライン1フレーム目------ soundObj = new Sound(); soundObj.attachSound("soundA"); //キーの状態を示すフラグを用意 key_flg = false; //------------------------------------------ //---ボタン1------------------------------ //このボタンをクリックしたとき と //「A」キーを押したとき に実行 on (release, keyPress "a") { //もし key_flg が false であれば if (!key_flg) { soundObj.start(0, 100); // key_flg を true にする key_flg = true; } } //------------------------------------------ //---ボタン2------------------------------ //このボタンをクリックしたとき と //「スペース」キーを押したとき に実行 on (release, keyPress "<Space>") { soundObj.stop("soundA"); // key_flg を false にする key_flg = false; } //------------------------------------------ もし「このボタンをクリックしたとき」の動作が要らないのでしたら on (release, keyPress "a") や on (release, keyPress "<Space>") の 「release,」を削除すれば良いです。 (音を止めるときのキーが不明であったため,仮に「スペース」キーを使うものとしました。) 「key_flg」などというものを用意しているのは 「A」キーを押しっぱなしにされたときの重複実行阻止処理のためです。 「A」キーを押しっぱなしにされたり,何度も押されると, 何度も soundObj.start(0, 100); が実行されて 音が重なって無茶苦茶になります。 それを阻止するために「key_flg」を入れています。 ちなみに上のスクリプトは ActionScript 2.0 設定でも使えますが 実質は ActionScript 1.0 の範囲内のスクリプトです。     > そもそもキーで制御する際はボタンではなく、 > ムービークリップの方がいいのでしょうか? う~ん..., それは正に Flash 5(2000年バージョン) 的な発想ですね。 「キー」を監視するのに 「キー」とは無関係なムービークリップを作るのは変ではないでしょうか? Flash MX(2002年バージョン) 以降は ムービークリップではなく Keyオブジェクト(Keyクラス) を使って「キー」を監視するのがナチュラルで一般的です。 念のため繰り返しますが, Flash CS 5.5 で ActionScript 2.0 を使うのですよね? ActionScript 2.0 が使えるのは Flash MX 2004(2004年バージョン) 以降です。 もし パブリッシュ設定 が Flash Player 5 とか ActionScript 1.0 になっていましたら とりあえず Flash Player 6 以上の ActionScript 2.0 にしてください。 そして上記スクリプトで使った「ボタン1」や「ボタン2」はステージ上から削除します。 そしてフレームに次のように書きます。 //---シーン1のタイムライン1フレーム目------ var soundObj:Sound = new Sound(); soundObj.attachSound("soundA"); //キーを監視させるオブジェクトを作成 var key_obj:Object = new Object(); //キーの状態を示すフラグを用意 var key_flg:Boolean = false; //キーを押したときに実行する関数の定義 key_obj.onKeyDown = function():Void { trace(Key.getCode()); //もし key_flg が false であり if (!key_flg) { //もし押されたキーが「A」であれば if (Key.isDown(65)) { soundObj.start(0, 100); //もし押されたキーが「スペース」キーであれば }else if(Key.isDown(32)){ soundObj.stop("soundA"); } // key_flg を true にする key_flg = true; } }; //キーを放したときに実行する関数の定義 key_obj.onKeyUp = function():Void { // key_flg を false にする key_flg = false; }; //key_obj を Key のリスナーとして登録 Key.addListener(key_obj); //------------------------------------------ これがボタンを用意しない場合の ActionScript 2.0 (Flash MX 2004 以降)的 なやり方と そのスクリプトです。 ※ 注意事項 Flash(SWF) でキーイベントを受け取ることができるのは Flash(SWF) にフォーカスが当たっているときだけです。 ですから HTML に SWF を貼り付けるときなどにおいては ボタンは一切不要だとしても 「スタート」ボタンのようなものを最初に表示させるなど Flash(SWF) にフォーカスを当ててもらうような工夫が必要です。 または JavaScript で Flash にフォーカスを当てるとか。 Google検索例「swf フォーカス javascript」 http://www.google.co.jp/search?hl=ja&source=hp&q=swf+%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AB%E3%82%B9+javascript

tm2an
質問者

補足

ご丁寧な回答ありがとうございます。 いろいろなサイトを参考にし自分ではCS5.5のAS2でやっていたつもりでしたが、Flash5のAS1になっていました; BlurFiltanさんから教えていただいた通りにやってみたところ、AS1でもAS2でもつくれました(^^) そしてもう一つ補足質問なんですが、現在は1つの音楽制御が出来ていますが複数の音楽制御を行うにはどうしたらいいんでしょうか。 soundB(2つ目の音楽)、「B」キー(再生キー)、「C」キー(停止キー)としてやってみたのですが、 AS1の方では //---シーン1のタイムライン1フレーム目------ soundObj = new Sound(); soundObj.attachSound("soundA");  soundObj.attachSound("soundB");   ←ここを加えた //キーの状態を示すフラグを用意 key_flg = false; //------------------------------------------ //---ボタンB------------------------------ //このボタンをクリックしたとき と //「A」キーを押したとき に実行 on (release, keyPress "b") {     ←aをbに書き換えた //もし key_flg が false であれば if (!key_flg) { soundObj.start(0, 100); // key_flg を true にする key_flg = true; } } //------------------------------------------ //---ボタンC------------------------------ //このボタンをクリックしたとき と //「スペース」キーを押したとき に実行 on (release, keyPress "c") {    ←スペースをcに書き換えた soundObj.stop("soundB");       ←soundAをsoundBに書き換え // key_flg を false にする key_flg = false; } //------------------------------------------ にしたところ、どちらの再生キー(「A」キーと「B」キー)を押してもsoundBが流れてしまい、停止もスペースキーは反応なしで「C」キーで停止するようになってしましました。 AS2はsoundBを足す以外いじり方がわからない状態です。 //---シーン1のタイムライン1フレーム目------ var soundObj:Sound = new Sound(); soundObj.attachSound("soundA");  soundObj.attachSound("soundB");   ←soundBを足した //キーを監視させるオブジェクトを作成 var key_obj:Object = new Object(); //キーの状態を示すフラグを用意 var key_flg:Boolean = false; //キーを押したときに実行する関数の定義 key_obj.onKeyDown = function():Void { trace(Key.getCode()); //もし key_flg が false であり if (!key_flg) { //もし押されたキーが「A」であれば if (Key.isDown(65)) { soundObj.start(0, 100); //もし押されたキーが「スペース」キーであれば }else if(Key.isDown(32)){ soundObj.stop("soundA"); } // key_flg を true にする key_flg = true; } }; //キーを放したときに実行する関数の定義 key_obj.onKeyUp = function():Void { // key_flg を false にする key_flg = false; }; //key_obj を Key のリスナーとして登録 Key.addListener(key_obj); //------------------------------------------ 最終的に音は8種類制御したいのですが、AS1、AS2どちらでもいいのでご指導いただけませんか? すみませんがよろしくお願いいたします。

関連するQ&A

  • AS2でキーによる複数の音楽制御について

    頻繁な質問で申し訳ありません。 AS2、CS5.5での環境で、キーによる複数の音楽の再生・停止の制御プログラムを作ろうとしています。 同時に複数の音楽が流れることが可能で、複数の音楽が流れている中で1つだけ止める等の音楽それぞれを個別に制御もできるものが希望です。 先日に //------------------------------------------- //この階層を変数化 var me:MovieClip = this; //変数 i を 0~7 の間で 1 ずつ加算しながらループ for (var i:Number = 0; i<=7; i++) { //Soundオブジェクト「sound_obj0」~「sound_obj7」を作成 me["sound_obj" + i] = new Sound(); //各Soundオブジェクトに各音を割り当てる me["sound_obj"+i].attachSound("sound"+i); //各音の再生フラグ「sound_flg0」~「sound_flg7」を用意 me["sound_flg"+i] = false; } //キーを監視させるオブジェクトを作成 var key_obj:Object = new Object(); //キーを押したときに実行する関数の定義 key_obj.onKeyDown = function():Void { // //押されたキーコードを保存 var key_num:Number = Key.getCode(); // //押されたキーコードが65~72(キーがA~H)の間であれば if (key_num>=65 && key_num<=72) { //さらにそのキーの音に対応するフラグが false であれば if (!me["sound_flg"+(key_num-65)]) { trace("sound_obj"+(key_num-65)); //そのキーに対応する音を再生 me["sound_obj"+(key_num-65)].start(0, 100); //その音に対応するフラグを true にする me["sound_flg"+(key_num-65)] = true; } //押されたキーコードが96~103(キーが1~7)の間であれば } else if (key_num>=96 && key_num<=103) { trace("sound_obj"+(key_num-96)); //そのキーに対応する音を停止 me["sound_obj"+(key_num-96)].stop("sound"+(key_num-96)); //その音に対応するフラグを false にする me["sound_flg"+(key_num-96)] = false; } }; //key_obj を Key のリスナーとして登録 Key.addListener(key_obj); //------------------------------------------- このようなスクリプトを教えていただきました。 これをさらに、Aキーを押せばsoundA(リンゲージ名を付けた音楽ファイル)が流れる、Bキーを押せばsoundBが流れ、1キーもしくは2キーのどちらか押されたらsoundAもsoundBも停止 というようにしたいのですが、可能でしょうか。 またこれを上記と同じ要領で、soundC、DはC、Dキーで再生し3、4キーで停止...EF、GHの8種類制御したいです。 説明が下手ですみませんが、どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 音のアクションスクリプトについて

    ActionScriptを使った音のスクリプトについて勉強しています。ステージ上に二つの音楽プレーヤーを設置し音楽を流す、という事からはじめてみたのですが、上手く行かずに困っています。 設置した音量+/-ボタンを押すと両方の音量が変わってしまったり、片側を再生している状態で、もう一方を再生すると、もう一方は停止してしまったり(目的的には困らないのですが、本来両方とも再生され音がでているのが本来の姿のようなので)、といった状態です。 何かを間違えた理解と書き方をしていると思うのですが、間違いの指摘や音のアクションスクリプトの書き方についてご教授いただければと思い、質問させていただきました。 複数音楽プレイヤーを設置 という事がしたい場合のアドバイスやご教授をいただきたく思います。 よろしくお願いします。 ステージ  MC01(インスタンス名、I_MC01)   L__MC再生ボタン(インスタンス名、I_saisei)   L__MC音量+ボタン   L__MC再生-ボタン  MC02(インスタンス名、I_MC02)   L__MC再生ボタン(インスタンス名、I_saisei)   L__MC音量+ボタン   L__MC再生-ボタン と二つのシンボルがステージ上に配置し、各MCに再生ボタンと音量+/-ボタンを配置しています。 MC01 onClipEvent (load) {    Hsound_MC01 = new Sound(I_MC01);    Hsound_MC01.attachSound("RS_MC01"); } MC再生ボタン onClipEvent (load) {    Hvol= 50; } on (release) {    _root.I_MC01.Hsound_MC01.stop();    _root.I_MC01.Hsound_MC01.start(); } onClipEvent (enterFrame) {    _root.I_MC01.Hsound_MC01.setVolume(this.Hvol); } MC音量+ボタンon (release) {    if (_root.I_MC01.I_saisei.Hvol<100) {       _root.I_MC01.I_saisei.Hvol += 10; } } と書きました。MC02も同じで、01と02が違うだけです。

    • ベストアンサー
    • Flash
  • AS2.0 キーを押して~秒後に実行

    AS2.0 キーを押して~秒後に実行 キーを押す度に、値(isVolume)が1ずつ増加し キーを押しっぱなしにして~秒経過すると増加を続ける、 というスクリプトを書きました。 しかし、この方法はあまりよろしくない気がします。 より短く簡潔に題名の機能を実現するにはどうすればよいか、 アドバイスをよろしくお願いいたします。 //1フレーム目 //初期値 var isVolume = 0; var key_check =0; var num = 36; onEnterFrame = function(){ //キーが押され、key_checkの値が0のとき if (Key.isDown(32) && key_check == 0) { //key_check、isVolumeの値の増加開始 key_check +=1; isVolume +=1; //キーが押され、key_checkの値が1以上のとき } else if(Key.isDown(32) && key_check >= 1) { //isVolumeの増加を停止しkey_checkの増加を続ける key_check +=1; //キーが押され、key_checkの値がnum以上になったとき if(Key.isDown(32) && key_check >= num) { //isVolumeの値の増加開始 isVolume +=1; } } else { //キーを押していないときkey_checkの値は0 key_check =0; } } こちらで動作が確認が出来ます。 http://okirakupage.warabuki.net/mainmenu1.swf

    • ベストアンサー
    • Flash
  • キーボードのキーを3つたて続けてに押すと反応しないバグはどうにかなりませんか?

    タイトルの通りです。3つの種類のキーを立て続けに押すと(Ctrl+Alt+Deleteを押すようなカンジの押し方)、反応してくれないキーがあります。 次の例はそれを確かめるためのもので、一応実験をしました。 //_root.my_mc内のスクリプト onClipEvent (enterFrame) { if (Key.isDown(32)) {//spaceキー trace("space on") } if (Key.isDown(87)) { trace("W on") } if (Key.isDown(83)) { trace("S on") } if (Key.isDown(65)) { trace("A on") } if (Key.isDown(68)) { trace("D on") } } //////// 「A+W+スペース」と押した場合には3つとも反応してtraceの出力結果もそれを示したものとなります。 しかし「S+D+スペース」と押した場合にはなぜか最後に押したスペースが反応しません。 今ゲームを作っていて、この問題に非常に困っています。 どうすれば反応してくれるのでしょうか? ちなみに環境はFlash8pro AS2.0 WinXP。もちろん、ちゃんと「キーボードのショートカットを無効」のやつをオンにしてやっています。

    • ベストアンサー
    • Flash
  • javascriptでFLASHのActionScriptを制御できるのでしょうか?

    いつもお世話になっております。 表題の通り、MacromediaのFLASH MXでWebのデザインをしております あるぺーじでアクションスクリプトを利用し サウンドをループさせて再生しております、 (このページをA.htmとします) Aのページにリンク(javascriptのopen.windowで)貼っていて 新しいウィンドウ(B.htm)が開いたら(アクティブになったら)Aのループサウンドを停止させ、Bが閉じられて再びAがアクティブになったらサウンドを再生させることは出来るのでしょうか? 現在のアクションスクリプトは下記の通りです --------フレーム1のアクション------------------- ongaku = new Sound(); ongaku.attachSound("voice"); ongaku,start(0,999); ------------------------------------------------- また、ボタンがクリックされたら停止するようにしていますので そのボタンアクションは以下の通りです ------------ボタンアクション--------------------- on (release) { if (dengen <> "ON"){ dengen = "ON"; ongaku.start(0,999); } else { dengen = "OFF"; ongaku.stop(); } } ------------------------------------------------ ボタンは、ダイナミックテキストの値を参照して サウンドが再生されてたり止まったりするようにしました。 フレームでの再生によるムービーなら javascriptでストップさせたりプレイさせたり出来るのは知っているのですが。 javascriptでactionScriptを制御できるのでしょうか? ご多忙中とは存じますが、宜しくお願いいたします。

  • 複数のswfを同時に制御したい。

    flash、javascript等について質問です。 制作環境はflash8 professional パブリッシュはflashplayer7~8です。 [やりたいこと] 全く同じswfを使った多数の音楽プレイヤーを制御したい。 [仕様] htmlのtableにて、全く同じswfを配置。 タグでswf?artistID=1のように変数を渡すことで、 アーティストごとに外部mp3やjpgを読み込み再生する。 [問題点] アーティスト1を再生したまま、アーティスト2を再生すると、 アーティスト1が再生されたままアーティスト2の再生が始まってしまう。(同時に2曲重なって再生されてしまう) [自分で試してみたこと] --javascriptでやってみる-- アーティスト1の再生ボタンを押すと、htmlに変数「1」を渡す。 アーティスト2の再生ボタンを押すと、javascriptでhtmlの変数を使い、 再生中のswfを制御(音楽を停止)したい。 ・変数は渡せても、再生中のswfを制御できない。 --localconnectionでやってみる-- 制御する側と、制御される側で、別のswfを作らなくてはならず、 今回のような状況だと不可能だと思われるのです。 --sharedobjectでやってみる-- アーティスト1の再生ボタンを押すと、変数「1」を”playID”に保存。 アーティスト2の再生ボタンを押すと、変数「2」を”playID”に上書き保存。 この時、アーティスト1はenterFrame等で”playID”と”artistID”を比較。 ”playID”は「2」になっているので停止させる。 ・getLocal()は書き込んだswfからしか最新の数値を参照できないらしく、アーティスト2からのgetLocal()は「2」になっていても、他のswfがenterFrame等で呼び出しても最新の数値が呼び出せなかった。 --mouselistenerで強引にやる-- mousedownで全プレイヤーを停止したのち、再生マウスが乗っていたプレイヤーを再生する。 ・mouselistenerはswf領域から外れると使えないので、他のswfは何も変化させることはできない。 - - - - - - - - - - - - - - - - - - - このような状況です。 フルフラッシュなら簡単なことなのですが、SEO対策等もあり、table等で配置という仕様です。 どなたか何か分かる方がいらっしゃいましたらご教示頂けると幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • AS3.0による外部swfの制御

    AS3.0による外部swfの制御 質問させていただきます。 やりたいと事は、メインとなるswfのボタンを押して、 読み込んだ外部swf(stopしている)を再生(play)したいと考えております。 メインのswfはAS3.0、読み込む外部swfはAS2.0になります。 環境はFlash CS3です。 以下がスクリプトになります。 //swf読み込み配置 var loader_obj : Loader = new Loader(); var url : URLRequest = new URLRequest("test.swf"); MovieClip(root).loader_obj.load(url); loader_obj.y = 3 loader_obj.x = 392 stage.addChild(loader_obj); //swfボタン制御 btn.addEventListener(MouseEvent.ROLL_OVER,btn_play); function btn_play(event:MouseEvent):void {MovieClip(root).photo.gotoAndPlay(2);//メインswfのムービーリップも動かす <--ここに外部swfを参照するスクリプトが入ると思うのですが・・・-->gotoAndPlay(2);//外部swfの2フレーム目から再生 } 肝心の所のスクリプトはわかりません・・・ 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 【複数の音声】スタート&ストップ

    前にも似たような質問してますが 簡潔にソースのどこが悪いか教えてください。 音を複数出せるように 2種類の再生ボタンを用意します。 ストップボタンも同じように用意します。 ストップボタンを押すと 対応した音が消えるようにしたいのですが どうしたらよいでしょうか? 作成したこと。 1フレームに下記のASを挿入。 //サウンド・クラスのインスタンスを生成 _root.a.bgm01 = new Sound(bgm01); _root.b.bgm02 = new Sound(bgm02); MCを2つ作成。 インスタンスは"a"と"b"を用意。 その中にサウンド素材を"a"と"b"に フレーム1に入れる。 イベントはストップの状態。 ボタンに書いたソースはこちら。 ひとつめ↓ on (release) { _root.a.bgm01.attachSound("bgm01"); _root.a.bgm01.start(); } ふたつめ↓ on (release) { _root.b.bgm02.attachSound("bgm02"); _root.b.bgm02.start(); } 停止ボタンには↓ "a" on (release) { _root.a.bgm01.stop(); } "b" on (release) { _root.b.bgm02.stop(); } 作りかけのファイルは 【http://flash-moe.yi.org/bgm/bgm.fla】 質問が終了次第削除します。

    • ベストアンサー
    • Flash
  • Key入力を無効にするには

    キーボードのボタンを押したらムービーの再生をして、再生が終わったら指定したフレームにジャンプさせたいのですが、ムービー再生中にキーボードのボタンをまた押すと最初からムービーが再生しなおされてしまいます。 on (release) { A.loadMovie("AA.swf"); btnA.enabled=false; } クリックの場合だと↑で上手くいったので、キー入力を無効にできたらと思ったのですが、どうしたらいいでしょうか

    • ベストアンサー
    • Flash
  • バックグラウンドでもキーで操作が可能な音楽プレイヤー

    バックグラウンドにあっても、割り当てたキーで再生や停止などが可能な音楽プレイヤーを探しています。 例えばWMPなら、WMPがアクティブウィンドウにあるときのみにCtrl+P(再生/一時停止)など、キーボードで操作を行うことが出来ますが、 アクティブウィンドウでなくても(バックグラウンドにあっても)そのような操作を行いたいのです。 操作するキーを好きに割り当てられるようにできるのが理想ですが、あまり高望みはしません。 なにかそのようなフリーの音楽プレイヤーを知っていましたら、是非教えてください。

専門家に質問してみよう