музыка, играющая снова и снова в Actionscript 3 - PullRequest
0 голосов
/ 13 февраля 2011

Приветствие, Я разработал сайт, используя flash с Actionscript 3.

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

но проблема в том, что когда я нажимаю кнопки для перемещения между страницами (кадрами), а затем иду и нажимаю кнопку_01, музыка будет воспроизводиться снова, поэтому я буду воспроизводить музыку более одного раза в фоновом режиме и sound_btn больше не будет работать, поэтому даже если я нажму на sound_btn, музыка не остановится.

код, который я использую, указан внизу. Посоветуйте, пожалуйста, что мне следует изменить, чтобы музыка не воспроизводилась в фоновом режиме более одного раза при переходе с одной страницы (кадра) на другую.

С уважением,

stop();
//number that is redefined when the pause button is hit
var pausePoint:Number = 0.00;
//a true or false value that is used to check whether the sound is currently playing
var isPlaying:Boolean;

//think of the soundchannel as a speaker system and the sound as an mp3 player
var soundChannel:SoundChannel = new SoundChannel();
var sound:Sound = new Sound(new URLRequest("music.mp3"));


//you should set the xstop and xplay values to match the instance names of your stop button and play/pause buttons
//mute_btn.addEventListener(MouseEvent.CLICK, clickStop);
sound_btn.addEventListener(MouseEvent.CLICK, clickPlayPause);

soundChannel = sound.play();
isPlaying = true;
myVideo.stop();

function clickPlayPause(evt:MouseEvent) {
    if (isPlaying) {
        pausePoint = soundChannel.position;
        soundChannel.stop();
        isPlaying = false;
    } else {
        soundChannel = sound.play(pausePoint);
        isPlaying = true;
    }
}


button_01.addEventListener(MouseEvent.CLICK, onClick1);
button_02.addEventListener(MouseEvent.CLICK, onClick2);
button_03.addEventListener(MouseEvent.CLICK, onClick3);
button_04.addEventListener(MouseEvent.CLICK, onClick4);
button_05.addEventListener(MouseEvent.CLICK, onClick5);
button_06.addEventListener(MouseEvent.CLICK, onClick6);


function onClick1(e:MouseEvent):void 
{ 
gotoAndStop(1);



} 

function onClick2(event:MouseEvent):void 
{  
gotoAndStop(2);


} 

function onClick3(event:MouseEvent):void 
{  
gotoAndStop(3);

} 

function onClick4(event:MouseEvent):void 
{  
gotoAndStop(4);

} 

function onClick5(event:MouseEvent):void 
{  
gotoAndStop(5);

} 

function onClick6(event:MouseEvent):void 
{  
gotoAndStop(6);

} 

1 Ответ

2 голосов
/ 13 февраля 2011

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

Вы также можете обнаружить, что перенос ваших страниц в мувиклипы и использование visible = true / false для изменения разделов может быть лучшим подходом, чем продвижение временной шкалы для изменения разделов. Этот метод не приведет к повторной инициализации звукового кода при каждом изменении разделов. как то так:

function onClick1(e:MouseEvent):void 
{ 
    hideAll();
    section_01.visible = true;



} 

function onClick2(event:MouseEvent):void 
{  
    hideAll();
    section_02.visible = true;


} 

function onClick3(event:MouseEvent):void 
{  
    hideAll();
    section_03.visible = true;

} 

function onClick4(event:MouseEvent):void 
{  
    hideAll();
    section_04.visible = true;

} 

function onClick5(event:MouseEvent):void 
{  
    hideAll();
    section_05.visible = true;

} 

function onClick6(event:MouseEvent):void 
{  
    hideAll();
    section_06.visible = true;

}

function hideAll():void
{
    section_01.visible = false;
    section_02.visible = false;
    section_03.visible = false;
    section_04.visible = false;
    section_05.visible = false;
    section_06.visible = false;
}

Если вам нужны промежуточные переходы, вы можете использовать класс анимации для обработки переходов, используя анимацию для текущего раздела в функции скрытия, а затем переходя в следующий раздел в соответствующей функции onCLick.

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