プロが教えるわが家の防犯対策術!

初めて投稿させていただきます。

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();
}
}

宜しくお願いいたします。

A 回答 (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();
}
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!