Звуки ActionScript 3

Лягушка

Я разрабатываю флеш-игру под названием Frog, на данный момент мой код для звука кажется слишком сложным, я хотел бы его упростить, но не понимаю, как это сделать. Любая помощь будет оценена по достоинству.

var musicSC:SoundChannel = new SoundChannel();
var musicST:SoundTransform = new SoundTransform();
var musicS:Sound = new Sound();
var musicURLR:URLRequest = new URLRequest('audio/music.mp3');
var flySC:SoundChannel = new SoundChannel();
var flyST:SoundTransform = new SoundTransform();
var flyS:Sound = new Sound();
var flyURLR:URLRequest = new URLRequest('audio/fly.mp3');
var frogSC:SoundChannel = new SoundChannel();
var frogST:SoundTransform = new SoundTransform();
var frogS:Sound = new Sound();
var frogURLR:URLRequest = new URLRequest('audio/frog.mp3');

function loopMusic():void {
    musicSC = musicS.play();
    musicSC.addEventListener(Event.SOUND_COMPLETE, loopMusic);
}
function loopFrog():void {
    frogSC = frogS.play();
    frogSC.addEventListener(Event.SOUND_COMPLETE, loopFrog);
}
function playFly():void {
    flySC = flyS.play();
}

musicS.load(musicURLR);
flyS.load(flyURLR);
frogS.load(frogURLR);
loopMusic();
loopFrog();

person Kristian Matthews    schedule 26.04.2012    source источник


Ответы (1)


Метод воспроизведения звукового объекта имеет второй параметр для количества циклов:

musicS.play (0, int.MAX_VALUE);

int.MAX_VALUE должно быть достаточно циклов для вашего приложения.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Sound.html

person Matt Garland    schedule 26.04.2012
comment
Спасибо, я воспользуюсь им, так как int.MAX_VALUE — смехотворно большое число, и мне не нужно больше этого. Однако, чисто для справки в будущем, нет ли более эффективного метода «бесконечного цикла»? - person Kristian Matthews; 27.04.2012
comment
Кроме того, должен ли я использовать несколько звуковых каналов? Я думал, что это будет лучший способ манипулировать моими звуками индивидуально, это правильно? - person Kristian Matthews; 27.04.2012
comment
Это самый лаконичный метод, но у него есть недостаток, заключающийся в том, что зацикливание не является бесшовным (Flash вставляет небольшую паузу в начале загружаемых mp3, хотя зацикливается идеально, если звук встроен в IDE) . Ознакомьтесь с некоторыми решениями здесь, если вы не можете жить с этим пробелом: forums.flixel.org/ index.php?topic=2964.0. - person Matt Garland; 27.04.2012
comment
Если вы используете параметр цикла, вам не нужен звуковой канал, так как вам не нужно слушать полное событие. Но если вы хотите останавливать и запускать звуки, а также управлять ими по другим причинам, вам определенно понадобится звуковой канал. - person Matt Garland; 27.04.2012