В моём проекте есть звуковое сопровождение: клики по кнопкам, музыка и голосовое сопровождение. Клики включены в swf, музыка и голос загружаются. Упростив программу до минимума, мы получим:
Основная прога на таймлайне:

Код AS3:
var clickMenuButt:ClickMenuButt = new ClickMenuButt();
var musicBack:MusicBack = new MusicBack();
var musicOn:Boolean = false;
var voiceBack:VoiceBack = new VoiceBack();
var voiceOn:Boolean = false;
clickButt.addEventListener(MouseEvent.MOUSE_DOWN, downHandlerClickButt);
function downHandlerClickButt(evt:MouseEvent):void {
clickMenuButt.clickButt();
}
musicButt.addEventListener(MouseEvent.MOUSE_DOWN, downHandlerMusicButt);
function downHandlerMusicButt(evt:MouseEvent):void {
musicOn = !musicOn;
if (musicOn) {
musicBack.playMusic();
} else {
musicBack.stopMusic();
}
}
voiceButt.addEventListener(MouseEvent.MOUSE_DOWN, downHandlerVoiceButt);
function downHandlerVoiceButt(evt:MouseEvent):void {
voiceOn = !voiceOn;
if (voiceOn) {
voiceBack.playVoice();
} else {
voiceBack.stopVoice();
}
}
Класс ClickMenuButt:

Код AS3:
package {
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
public class ClickMenuButt {
static public var CLICK_VOLUME:Number = 1;
private var clickSound:Sound;
private var clickChannel:SoundChannel;
private var clickTransform:SoundTransform;
public function ClickMenuButt() {
clickSound = new ClickSound();
clickTransform = new SoundTransform();
clickTransform.volume = CLICK_VOLUME;
}
public function clickButt():void {
clickChannel = clickSound.play();
clickChannel.soundTransform = clickTransform;
}
}
}
Класс MusicBack (класс VoiceBack пока аналогичен):

Код AS3:
package {
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.net.URLRequest;
public class MusicBack {
static public var MUSIC_VOLUME:Number = 0.05;
private var musicSound:Sound;
private var musicChannel:SoundChannel;
private var musicTransform:SoundTransform;
public function MusicBack() {
musicSound = new Sound(new URLRequest("Music01.mp3"));
musicTransform = new SoundTransform();
musicTransform.volume = MUSIC_VOLUME;
}
public function playMusic():void {
musicChannel = musicSound.play();
musicChannel.soundTransform = musicTransform;
}
public function stopMusic():void {
musicChannel.stop();
}
}
}
Если щёлкать по кнопкам без музыки и голоса всё ок, но включив музыку, тем более вместе с голосом, все звуки начинают тормозить в т.ч. и клики, для меня это неприемлемо. Почему и что делать?
Задержка звука может показаться незначительной, но это же без основной программы, потом задержка может значительно вырасти. Ссылка архив со всеми файлами
http://filepark.narod.ru/sound_question.rar
Добавлено через 21 час 56 минут
Может быть есть возможность повысить приоритет кликов, чтобы хотя бы они срабатывали вовремя?