AS3のSound

as3になって、何やら面倒くさくなってるー。

イベントとるのに SoundChannel
ボリューム変えるのに SoundTransform

public function init(sound:Sound):void {
     _muteFlg = true;
     _sound = sound;
     _soundChannel = _sound.play();
     _soundChannel.addEventListener( Event.SOUND_COMPLETE, soundComplete );
     this.addEventListener(MouseEvent.MOUSE_UP, switchOnOff);
     _soundTransform = new SoundTransform();
}
private function switchOnOff(e:MouseEvent):void {
     _muteFlg =! _muteFlg;
     _soundTransform.volume = (_muteFlg)?1:0;
     _labelMc.gotoAndStop( (_muteFlg)?"on":"off" );
     _soundChannel.soundTransform = _soundTransform;
}
function soundComplete( eventObject:Event = null ):void {
     // 完了後にまた再生でループ
     _soundChannel = _sound.play( 0 );
     _soundChannel.soundTransform = _soundTransform;
     _soundChannel.addEventListener( Event.SOUND_COMPLETE, soundComplete );
}