レス数:6 / 状態:解決済み / No:103 / ATOM
1
名前:悠希
日付:2012/12/17(月)20:00:20
ID:9nNs5A2PkFc7
こんばんわ。
いつも参考にさせてもらっています。
今回わからない事が有り質問させてもらいます。
宜しくお願いします。
as2.0です。
アクティブレベルを取得し、フレーム移行できるようにはできましたが、
どうしても、音声を取得し続けなければ次フレームへと進行してくれません。
現在のスクリプトがこちらです。
// 空のムービークリップを作成
var mc = _root.createEmptyMovieClip("sound_mc", 0);
// Microphone オブジェクトを取得
var mic_obj = Microphone.get();
// オーディオソースを関連付ける
mc.attachAudio(mic_obj);
// 無音状態とみなすボリュームのしきい値を設定
mic_obj.setSilenceLevel(15,50);
// エコー抑制を設定する
mic_obj.setUseEchoSuppression(false);
// エコー抑制設定を取得する
trace(mic_obj.useEchoSuppression);
// アクティビティを検出する
onEnterFrame = function(){
trace("アクティビティレベル:" + mic_obj.activityLevel);
if (mic_obj.activityLevel >= 40){
gotoAndPlay(10);
}else if (mic_obj.activityLevel <=10){
gotoAndPlay(20);
}else{
gotoAndPlay(30);
}
};
アクティビティレベルが40以上で10フレームに飛び、音声を
取得し続けなくても11フレーム、12フレーム〜へとどんどんと再生させれるように
できないでしょうか?
宜しくお願いします。
いつも参考にさせてもらっています。
今回わからない事が有り質問させてもらいます。
宜しくお願いします。
as2.0です。
アクティブレベルを取得し、フレーム移行できるようにはできましたが、
どうしても、音声を取得し続けなければ次フレームへと進行してくれません。
現在のスクリプトがこちらです。
// 空のムービークリップを作成
var mc = _root.createEmptyMovieClip("sound_mc", 0);
// Microphone オブジェクトを取得
var mic_obj = Microphone.get();
// オーディオソースを関連付ける
mc.attachAudio(mic_obj);
// 無音状態とみなすボリュームのしきい値を設定
mic_obj.setSilenceLevel(15,50);
// エコー抑制を設定する
mic_obj.setUseEchoSuppression(false);
// エコー抑制設定を取得する
trace(mic_obj.useEchoSuppression);
// アクティビティを検出する
onEnterFrame = function(){
trace("アクティビティレベル:" + mic_obj.activityLevel);
if (mic_obj.activityLevel >= 40){
gotoAndPlay(10);
}else if (mic_obj.activityLevel <=10){
gotoAndPlay(20);
}else{
gotoAndPlay(30);
}
};
アクティビティレベルが40以上で10フレームに飛び、音声を
取得し続けなくても11フレーム、12フレーム〜へとどんどんと再生させれるように
できないでしょうか?
宜しくお願いします。
2
日付:2012/12/17(月)21:58:36
ID:uqGvQ4UrzKin
>どうしても、音声を取得し続けなければ次フレームへと進行してくれません。
このソースでは
10、20、30フレーム目のどこかで停止し続けるような動作をすると思うのですが
どういう事でしょうか?
このソースでは
10、20、30フレーム目のどこかで停止し続けるような動作をすると思うのですが
どういう事でしょうか?
音量を取得しない時は、20フレーム目にいるのですが、それ以外の
場合、10フレーム目、30フレーム目に飛び、数フレームある、ムービ
ークリップの1フレーム目のみ再生され、また20フレーム目にすぐ戻って
しまうので、一回音を取得してから、音量が変わってもムービー再生が途切れ
て20フレーム目に飛ばないようにしたいです。
CS4で、as2.0のファイルをアップロードさせていただきたいと思います。
宜しくお願いします。
場合、10フレーム目、30フレーム目に飛び、数フレームある、ムービ
ークリップの1フレーム目のみ再生され、また20フレーム目にすぐ戻って
しまうので、一回音を取得してから、音量が変わってもムービー再生が途切れ
て20フレーム目に飛ばないようにしたいです。
CS4で、as2.0のファイルをアップロードさせていただきたいと思います。
宜しくお願いします。
4
日付:2012/12/17(月)22:54:03
ID:uqGvQ4UrzKin
なるほど。
10、20、30フレーム目に、さらにムービークリップが配置されるわけですね。
ソースでは、onEnterFrame イベントハンドラを使われています。
このイベントは、関数をセットすると、その関数を毎フレーム実行してくれます。
gotoAndPlay(20) は、毎フレーム実行する必要は無いと思います。1回だけ実行するようにします。
29フレーム目に、「20フレーム目に戻る」スクリプトを追加して、20 ~ 29 フレームの間をループ再生させるなどして、
音量チェックの待機状態とします。
イベントハンドラを無効化したい場合は、onEnterFrame に null などの値をセットします。
今回は、10 より大きい音量を取得できた時点から、毎フレーム音量をチェックする必要がなくなるので
このタイミングで、onEnterFrame に null をセットするといいのではないでしょうか。
───────────────────────────
// 音量をチェックするフレームに移動
gotoAndPlay(20);
// 毎フレーム実行されるイベントに関数を登録
onEnterFrame = function(){
trace("アクティビティレベル:" + mic_obj.activityLevel);
if (mic_obj.activityLevel >= 40){
// 毎フレーム実行されるイベントを無効化
onEnterFrame = null;
gotoAndPlay(10);
}else if (mic_obj.activityLevel > 10){
// 毎フレーム実行されるイベントを無効化
onEnterFrame = null;
gotoAndPlay(30);
}
};
10、20、30フレーム目に、さらにムービークリップが配置されるわけですね。
ソースでは、onEnterFrame イベントハンドラを使われています。
このイベントは、関数をセットすると、その関数を毎フレーム実行してくれます。
gotoAndPlay(20) は、毎フレーム実行する必要は無いと思います。1回だけ実行するようにします。
29フレーム目に、「20フレーム目に戻る」スクリプトを追加して、20 ~ 29 フレームの間をループ再生させるなどして、
音量チェックの待機状態とします。
イベントハンドラを無効化したい場合は、onEnterFrame に null などの値をセットします。
今回は、10 より大きい音量を取得できた時点から、毎フレーム音量をチェックする必要がなくなるので
このタイミングで、onEnterFrame に null をセットするといいのではないでしょうか。
───────────────────────────
// 音量をチェックするフレームに移動
gotoAndPlay(20);
// 毎フレーム実行されるイベントに関数を登録
onEnterFrame = function(){
trace("アクティビティレベル:" + mic_obj.activityLevel);
if (mic_obj.activityLevel >= 40){
// 毎フレーム実行されるイベントを無効化
onEnterFrame = null;
gotoAndPlay(10);
}else if (mic_obj.activityLevel > 10){
// 毎フレーム実行されるイベントを無効化
onEnterFrame = null;
gotoAndPlay(30);
}
};
6
名前:状態変更
日付:2012/12/17(月)23:40:50
ID:9nNs5A2PkFc7
この質問の状態を『解決』に変更しました。
このスレッドについて
質問の状態 : | 解決済み |
投稿開始日 : | 2012/12/17(月)20:00:20 |
投稿終了日 : | 2012/12/24(月)23:42:54 |
投稿者 : | 悠希 |
レス総数 : | 6 |
スレッド番号 : | 103 |