2016-08-18 5 views
0

Я создал кнопку включения/выключения звука с использованием Flash AS3. Эти работы, но всякий раз, когда я нажимаю кнопку выключения, а затем кнопку включения, музыка снова не воспроизводится?looping sound flash as3

Я считаю, что это проблема с циклом, но могу ли я ошибаться? Я не уверен, какой код использовать, если это проблема цикла.

Мне также нужно добавить код для функции btnOn, как при открытии .swf звук автоматически воспроизводится.

Прикрепленный мой текущий код ниже:

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file) 

var myChannel:SoundChannel = new SoundChannel(); 

var lastPosition:Number = 0; 

myChannel = mySound.play(); 

btnOff.addEventListener(MouseEvent.CLICK, onClickPause); 

function onClickPause(e:MouseEvent):void { 

lastPosition = myChannel.position; 

myChannel.stop(); 

} 

Приветствия :)

+0

_ «... когда я открываю .swf звук автоматически воспроизводит» _ так, что вы думаете, эта команда делает: '= MySound мой канал .play(); '? Если вы хотите, чтобы что-то произошло ** только **, когда вы нажимаете, тогда поместите эту инструкцию в функцию обработки щелчка. PS: Является ли функция 'onClickPause' ожидаемой как для паузы, так и для возобновления звука? –

ответ

0

Ваш код показывает только слушателя событий onClickPause (я thinkt вот Ваша кнопка остановки). Но где прослушиватель событий для кнопки запуска/воспроизведения. На кнопке воспроизведения вы должны снова вызвать функцию воспроизведения. Вот отличный учебник: http://www.republicofcode.com/tutorials/flash/as3sound/

+0

Я пробовал там, но код не работает? – ConfusedDreamweaverUser

+1

Можете ли вы разместить свой полный код? Где ваш код для кнопки воспроизведения/возобновления? –

0

Вы можете попробовать код ниже. Он использует одну кнопку для аудио паузы/функциональность резюме ...

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file) 
var myChannel:SoundChannel = new SoundChannel(); 
var lastPosition:Number = 0; 
var audioState : String = "paused"; //will become either "playing" or "paused" 


myChannel = mySound.play(); //this line starts playback 
audioState = "playing"; //update because you started playback with above line 

btnOff.addEventListener(MouseEvent.CLICK, onPlayPause); 


function onPlayPause(e:MouseEvent):void 
{ 

    if (audioState == "playing") //IF already playing 
    { 
     lastPosition = myChannel.position; //note current "audio time" when pausing 
     myChannel.stop(); //stop playback 
     audioState = "paused"; //update for next time click is used 
    } 
    else if (audioState == "paused") //or ELSE IF was already paused then... 
    { 
     myChannel = mySound.play(lastPosition); //resume playback 
     audioState = "playing"; //update for next time click is used 
    } 

}