FLVPlaybackでデフォルトサウンドON・OFFをユーザーに設定させたい場合があったりします。
サンプル作ってみました。サウンドは【void productions】さんのを利用させていただきました。
ムービーは【ayato@web】さんを見ながら作ってみました。AEとかほとんど触ったことないけど。
ご覧になるには最新のFlashPlayerが必要です。
ラジオボタンON・OFF切り替え後、LoadMovieボタンをクリックでムービーを読み込みます。
以下LoadMovieクリック後のソース抜粋です。_soundGroupはON・OFFのRadioButtonGroupです。
//ラジオボタンがOFFだったら
if(_soundGroup.selection.value == "sound_off")
{
var on_mc : Sprite = _player.muteButton.getChildAt(0) as Sprite;
on_mc.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
ただし、これはスキン内のインスタンスを参照しているのでスキンが読み込まれた後じゃないとエラーがでます。
スキンが読み込まれたかどうかはVideoEvent.SKIN_LOADEDを使用します。
以下LoadMovieクリック後の流れ。
実際にはローディングテキストなど他の処理も含まれていますが今回はその辺は重要じゃないので省きます。
private function loadFlv(e : MouseEvent) : void
{
_player = new FLVPlayback();
_player.setSize(420, 280);
_player.skin = "スキンのパス";
_player.source = "ムービーのパス";
_player.autoPlay = true;
_player.addEventListener(VideoEvent.COMPLETE, complete);
_player.addEventListener(VideoEvent.READY, videoReady);
_player.addEventListener(VideoEvent.SKIN_LOADED, skinLoaded);
}
private function skinLoaded(e : VideoEvent) : void
{
_player.removeEventListener(VideoEvent.SKIN_LOADED, skinLoaded);
//ラジオボタンがOFFだったら
if(_soundGroup.selection.value == "sound_off")
{
var on_mc : Sprite = _player.muteButton.getChildAt(0) as Sprite;
on_mc.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
}
private function videoReady(e : VideoEvent) : void
{
_player.removeEventListener(VideoEvent.READY, videoReady);
addChild(_player);
}
private function complete(e : VideoEvent) : void
{
_player.play();
}
Similar Posts