Звук воспроизводится автоматически - вспышка - PullRequest
0 голосов
/ 16 декабря 2010

На одном кадре в моем флеш-проекте 6 кнопок. При нажатии кнопки воспроизводится другая песня. Просто. Проблема в том, что первая песня в списке воспроизводится во время загрузки проекта, а не ждет, пока кто-нибудь нажмет кнопку!

import fl.events.SliderEvent;
var snd:Sound;
var channel:SoundChannel;
var trans:SoundTransform;
var currSong:String;
var currVol:Number = .5;
var currPan:Number = 0;


var songList:Array=new Array("Drifting.mp3","Push.mp3",
                             "Stupid.mp3","Train Wreck.mp3","World on Fire.mp3","Fallen.mp3");


panSlide.visible=false;
volSlide.visible=false;


song1.addEventListener(MouseEvent.CLICK, chooseSong);
song2.addEventListener(MouseEvent.CLICK, chooseSong);
song3.addEventListener(MouseEvent.CLICK, chooseSong);
song4.addEventListener(MouseEvent.CLICK, chooseSong);
song5.addEventListener(MouseEvent.CLICK, chooseSong);
song6.addEventListener(MouseEvent.CLICK, chooseSong);
panSlide.addEventListener(SliderEvent.CHANGE, panChange);
volSlide.addEventListener(SliderEvent.CHANGE, volumeChange);



function chooseSong(e:MouseEvent):void {
    switch (e.currentTarget.name) {
        case "song1":
            currSong = "../MP3s/"+songList[0] as String;
            break;

        case "song2":
            currSong = "../MP3s/"+songList[1] as String;
            break;

        case "song3":
            currSong = "../MP3s/"+songList[2] as String;
            break;

        case "song4":
            currSong = "../MP3s/"+songList[3] as String;
            break;

        case "song5":
            currSong = "../MP3s/"+songList[4] as String;
            break;

        case "song6":
            currSong = "../MP3s/"+songList[5] as String;
            break;
    }
    if (snd != null) {
        channel.stop();
    }
    snd = new Sound();
    snd.load(new URLRequest(currSong));

    channel = new SoundChannel  ;
    trans = new SoundTransform(currVol,currPan);
    channel = snd.play();
    channel.soundTransform = trans;
    panSlide.visible = true;
    volSlide.visible = true;
}


function volumeChange(e:SliderEvent):void {
    currVol = e.target.value;
    trans.volume = currVol;
    channel.soundTransform = trans;
}



function panChange(e:SliderEvent):void {
    currPan = e.target.value;
    trans.pan = e.target.value;
    channel.soundTransform = trans;
}

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Вы уверены, что случайно не добавили звук на шкалу времени? Если нет, то вы должны добавить трассировку внутри метода, выбирайте «Сонг» и проверяете, запускается ли он при загрузке проекта.

Я создал новый файл с mc (song1) на сцене и этим сценарием. Это работает для вас?

song1.addEventListener(MouseEvent.CLICK, chooseSong);

function chooseSong(e:MouseEvent):void {
    trace (e.currentTarget.name)
}
1 голос
/ 16 декабря 2010

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

Проверьте также свои элементы управления, может возникнуть проблема с простым ошибочным щелчком мыши.

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