Загрузка и воспроизведение более одного файла .mp3 - PullRequest
1 голос
/ 26 октября 2010

Я пытаюсь настроить файл .flv, в котором будут кнопки для двух разных фрагментов звука. Я смог загрузить первую часть, сыграть и остановить, но когда я пытаюсь загрузить вторую часть, я сбиваюсь с толку. Я все еще новичок, но думаю, что понимаю основную проблему - Actionscript не может отличить один звуковой запрос от другого. Вопрос в том, как это исправить и получить actionScript, чтобы понять, что я пытаюсь загрузить и воспроизвести два разных звука, связанных с двумя разными кнопками? Я получаю коды ошибок, такие как «1151: существует конфликт с определением s во внутреннем пространстве имен». проблемы "duplicate function" и предупреждения "duplicate variable". Я видел некоторое обсуждение на этом сайте перерабатываемого звукового объекта. Я думаю, что задаю аналогичный вопрос, но хотя человек, который задал этот вопрос, также опубликовал решение, я не смог заставить его работать. Вот код:

var s:Sound = new Sound();
s.load(new URLRequest("http://www.website.com/Water.mp3"));

wellsplay_btn.addEventListener(MouseEvent.CLICK,playSound);
wellsstop_btn.addEventListener(MouseEvent.CLICK,stopSound);

function playSound(e:MouseEvent):void
{
sc = s.play();
}

function stopSound(e:MouseEvent):void
{
sc.stop();
}

var s:Sound = new Sound();
 s.load(new URLRequest("http://www.website.com/Wells.mp3"));

wellsplay_btn.addEventListener(MouseEvent.CLICK,playSound);
wellsstop_btn.addEventListener(MouseEvent.CLICK,stopSound);

function playSound(e:MouseEvent):void
{
sc = s.play();
}

function stopSound(e:MouseEvent):void
{
sc.stop();
}

Остальные команды работают нормально. У меня проблемы только с этим разделом. Спасибо заранее за любые предложения.

Ответы [ 2 ]

1 голос
/ 26 октября 2010

Следуя комментарию, который вы оставили для Tyler Egeto, присвоение нового имени экземпляру Sound означает следующее

 //The variables names are s1 & s2
 var s1:Sound = new Sound();
 var s2:Sound = new Sound();

Первый «Звук» после имени вашей переменной - имя вашего класса. AS3 является строго типизированным языком, означающим, что вам нужно указать тип переменной, которую вы объявляете. В данном случае это экземпляр класса Sound.

Чтобы воспроизвести (или остановить) конкретный экземпляр Sound, вам необходимо определить, какая кнопка была нажата, и соответственно отреагировать

 function playSound(e:MouseEvent):void
 {
     switch( e.currentTarget )
     {
          case wellsplay_btn:
           sc = s1.play();
           break;

          case waterplay_btn:
           sc = s2.play();
           break;
     }

 }
0 голосов
/ 26 октября 2010

Это потому, что вы объявляете переменную var s:Sound дважды, используйте для них разные имена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...