2007年12月23日日曜日

Flexで音が鳴らないとき

<mx:SoundEffect />を使ってmp3などの音を慣らそうと思っているけど、条件分岐などのためにASからsoundEffect.play()などで鳴らしたい場合、mp3のロードは成功しているのに、音が鳴らない場合があります。

※soundEffectはインスタンスだと思ってください

そんなときは、

soundEffect.target = panelObject

など、親や実際にクリックなどの動作を行うオブジェクトを入れておくと、鳴るようです。

たしかに、

<mx:Canvas showEffect="soundEffect"/>

などとしておくと、初期か終了時にはtargetに親オブジェクトが入っている。

ソースを追った訳ではないけれど、イベントフローなどの関係で必要なのかな。

こういう構造になっているのだから、ASからSoundEffecdtを使うのは、使い分けが間違っているのかもしれない。(Soundオブジェクトを直接使う方がいい?)

0 件のコメント: