ActionScript3 останавливает звук при РАЗВЕРТКЕ

#flash #actionscript-3 #actionscript #flash-cs5

#вспышка #ActionScript-3 #ActionScript #flash-cs5

Вопрос:

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

Пока у меня есть это

 import flash.events.Event;
import flash.media.SoundChannel;

stop();

button1.addEventListener(MouseEvent.ROLL_OVER,playSound);
function playSound(event:Event) {
var mySound:elmosample = new elmosample();
var myCahnnel:SoundChannel = mySound.play();
}`
  

Есть ли способ остановить воспроизведение звука с помощью ROLL_OUT или остановить текущий звук при запуске нового?

Ответ №1:

может быть, написать функцию при развертывании? что-то вроде

button1.addEventListener(MouseEvent.ROLL_OUT,stopSound);

и при одновременном воспроизведении только одной песни, может быть, поместить имя переменной звука в один массив и использовать только один канал? но я не уверен, как вы воспроизводите новый звук, поэтому я не могу дать вам четкий ответ

надеюсь, это поможет

Комментарии:

1. Я написал новую функцию button2.addEventListener(MouseEvent.ROLL_OUT,stopSound); функция stopSound(событие:Событие) { var MySound:elmosample1 = новый elmosample1(); var Myc nnel:SoundChannel = MySound.stop(); } но теперь получаю ошибку вывода TypeError: ошибка #1006: остановкане является функцией. в _fla::MainTimeline/stopSound()

2. вы не можете использовать sound class для остановки звука в AS3, используя его канал, поэтому попробуйте MyChannel.stop(); это кажется хорошим решением: republicofcode.com/tutorials/flash/as3sound

Ответ №2:

 import flash.events.Event;
import flash.media.SoundChannel;

stop();

var mySound:Sound;
var myChannel:SoundChannel;

button1.addEventListener(MouseEvent.ROLL_OVER, onRollOver);
button1.addEventListener(MouseEvent.ROLL_OUT, onRollOut);   

function onRollOver(e:Event):void 
{
  //stop previous sounds
  if(myChannel)
    myChannel.stop();

  mySound = new elmosample();
  myChannel = mySound.play();
}

function onRollOut(e:Event):void
{
  myChannel.stop();
}