こんにちは、なかわけです。
今日は、FLVオブジェクトとSoundオブジェクトの同時操作のバグについてです。ちなみに解決してませんw。
簡単に説明すると、音楽と映像を同時に再生するムービーでBGMを止めるとFLVムービーも止まってしまうというバグです。
具体的には、rootレイヤーに下記スクリプトを書いてBGMを流します。
var mySound = new Sound(); mySound .attachSound("BGM"); mySound.start();
そのあとに同じくrootレイヤーに下記スクリプトを書いて、再生ボタンを音楽を止めてムービーを再生します。
my_FLVPlybk.playPauseButton = my_plypausbttn; //再生されたときの処理 var listenerPlayObject:Object = new Object(); listenerPlayObject.playing = function(eventObject:Object):Void { mySound.stop(); } my_FLVPlybk.addEventListener("playing", listenerPlayObject);
上のEventを日本語にすると、addEventListenerでFLVが再生されたら、mySound.stop();を実行すると書いてあるのに、これをプレビューすると音楽もFLVムービーも一緒に止まってしまいます。
Flashに関しては、以前からSoundObject関連でバグがありましたが、どうやらObject全体でバグがあるようです。
【関連記事】ボリューム0でSound.loadSound()すると100に戻しても音が聴こえない
今回の場合は、EventListenerで処理をせずに、「my_plypausbttnをクリックしたらmySound.stop();してその後にFLVムービーを再生」と記述すればうまくできました。
でも、このバグをかかえてる限り、FLVを再生中に途中から音楽を再生したり停止したりということができません。
たぶん、回避方法はあるようですが研究が必要です。
もし、だれかうまい回避策を知ってる人がいましたら、コメントください。
関連記事を書いている野中さんが過去にこれについて書いていますよ。
http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=1195&forum=8
通りすがりさん。コメントありがとうございます。
こういうコメントがあるとほんと助かります。参考になります。なかわけもまだまだド素人の領域なので。精進しいきたいと思います。ベンキョウ、ベンキョウ。