0810,2008
ActionScript 3.0 SoundMixer.computeSpectrum はWindows/IEでloadmovieすると固まる バグ
ActionScript 3.0でサウンド波形を扱うメソッド
このサイトでも使っているのですが、
![]()
http://event.67.org/gainer/
SoundMixer.computeSpectrumは
「 現在のサウンド波形からスナップショットを取得し、指定した ByteArray オブジェクトに配置します。」
音のその瞬間の波形の振り幅を取得できます。
とてもイイ感じのメソッドなのですが、次の条件が重なった場合に強制終了します。
・Windows
・IE6/7 (ActiveX版のPlayer)
・SoundMixer.computeSpectrumを使用しているswfが読み込まれている場合
最後の条件がくせ者で、単独で走っている場合は問題ないのですが、別のswfに呼び込まれている場合にのみ、強制終了します。
また強制終了するまでの時間は、数秒から数十秒の幅があります。
これを回避するには
・単独のswfで終わらせるか
・SoundMixer.computeSpectrumに関する処理を読み込む側のswfで処理するか
・次のようなスクリプトで回避します
例
public function enterFrameHandler(event:Event):void {
try {
SoundMixer.computeSpectrum(byte1_array,true,0);
for (var i=0; i <256*2; i=i+9) {
a=byte2_array.readFloat()*2;
obj1.scaleZ=a;
}
} catch (e) {
//残念賞
}
}
はい。すみません。回避はできません。
なのでtryでくくって落ちても気にしない方向でいきます。
(kani君ありがとう)
Posted by uk at 13:38 | パーマリンク | コメント (0) | トラックバック (0)
このエントリーのトラックバックURL:
http://www.67.org/blog/mt-tb.cgi/902
