• 締切済み

ムービークリップが重なると音が一定の間隔で鳴らす

初めて投稿させていただきます。 mcを2つ用意します。 ・mc1はランダムに移動する ・mc2は常に固定の位置 やりたい事は、 ・mc1がmc2の上に重なった時に、音が一定の間隔で鳴る仕組みをつくりたい ・mc1がmc2と重なってる状態から離れた時は音を止めたい。また重なったら音を鳴らす この二つです。 現状ですと、連続して鳴り続けてしまったり、全く鳴らなかったりと 上手い方法が思いつきません。 どなたかアドバイスをお願いします。 音は単純な「ポン」というようなマウスオーバー時などによく使う音です。 考えてみたAS onClipEvent (enterFrame) { if(_root.mc2_mc.hitTest(_root.mc1_mc)){ _root.Oto.start(); } else { _root.Oto.stop(); } } 宜しくお願いいたします。

みんなの回答

  • is_may
  • ベストアンサー率65% (58/89)
回答No.1

重なっている時にカウンタ変数を毎回”1”ずつ足していき、ある量に達すると音を出してカウンタ変数を0にすることで実現可能です。 onClipEvent (enterFrame) { if (_root.mc2_mc.hitTest(_root.mc1_mc)) { if(pon_i==0){ _root.Oto.start(); } pon_i=(pon_i>=10)?0:pon_i+1; } else { pon_i=0; } } onClipEvent (load) { var pon_i = 0; } または、重なった瞬間にsetIntervalで音を一定間隔で鳴らす関数を定義し、外れた瞬間にclearIntervalで一定間隔を解除することでも実現できます。 onClipEvent (enterFrame) { if (_root.mc2_mc.hitTest(_root.mc1_mc)) { if(!pon_flag){ pon_flag=true; pon_si = setInterval(pon,500); } } else { if(pon_flag){ pon_flag=false; clearInterval(pon_si); } } } onClipEvent (load) { var pon_flag = false; function pon(){ _root.Oto.start(); } }

関連するQ&A