Показать сообщение отдельно
Старый 28.03.2015, 21:38
Фомич вне форума Посмотреть профиль Отправить личное сообщение для Фомич Найти все сообщения от Фомич
  № 1  
Ответить с цитированием
Фомич

Регистрация: Feb 2015
Сообщений: 63
По умолчанию Проблема при поочередном воспроизведении звука

Приветствую! При попытке вставить выстрел в игру столкнулся с проблемой, когда громкость последовательно воспроизводимых звуков нарастает( хотя громкость выставлена 1). Размер звукового файла 2,37 КБ

Примерно все выглядит так:

Код AS3:
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
 
class Fire {
var MP3:Sound = new GameMP3();// GameMP3 - загруженный в библиотеку звук одиночного выстрела
var сhannel:SoundChannel = new SoundChannel();
var volume:Number = 0.0;
var fireOn:Boolean = false;
 
function Fire () {
 
   сhannel = MP3.play();//далее будет проверка на проигрывание, поэтому нужен первый запущенный трек
   сhannel.soundTransform = new SoundTransform(volume);
   volume = 0.0;//пока нет клика звук не слышен
 
   stage.addEventListener(Event.ENTER_FRAME, addSound);
   stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseTrue);
   stage.addEventListener(MouseEvent.MOUSE_UP, mouseFalse); 	  
 
}//function Fire
 
 
function mouseTrue(e:MouseEvent):void {
 
   volume = 1;
   fireOn=true;
 
}//mouseTrue
 
function mouseFalse(e:MouseEvent):void {
 
   fireOn=false;
 
}//mouseFalse
 
function addSound(e:Event):void {
 
    if (fireOn) {
 
 
	 trace(int(сhannel.position),int(MP3.length));// 156 182 - здесь  метод проверки их на равенство, которое почему то не совсем равенство при наибольших  положениях, поэтому взял первое число
 
	 if ( int(сhannel.position) == 156 ) {//ждет окончания проигрывания и запускает новое, очередь из автомата, при значении больше 156 не работает
	 сhannel.stop();// на всякий случай
	 сhannel = MP3.play();
	  }
 
 
}//addSound
 
 
}//class Fire