Управление звуком на кнопке во Flash CS5 - PullRequest
1 голос
/ 06 июля 2011

Я новичок во флэш-памяти, поэтому прошу прощения за вопрос, если он супер новичок.

В моих документах флэш-памяти я создаю несколько кнопок на странице, которые будут вызывать звук при нажатии пользователем данной кнопки.Длительность прикрепляемого аудио составляет от 1 до 2 минут, поэтому я хочу дать пользователю возможность отключить звук для данного произведения, если они того пожелают.Я сделал это с помощью кнопки на странице со следующим AS3:

import flash.media.SoundMixer; 
myButton.addEventListener(MouseEvent.CLICK,fn_clickHandler); 
function fn_clickHandler(IN_Event:MouseEvent):void
{         
SoundMixer.stopAll();     
}

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

Спасибо

1 Ответ

1 голос
/ 06 июля 2011

Я не совсем уверен, что полностью понял ваш вопрос.Но если я сделал это правильно, то вот ответ:

import flash.events.MouseEvent;
import flash.media.Sound;
import flash.media.SoundChannel;

var SChannel : SoundChannel;
var sound : Sound;

// your sound managing buttons
sound_1.addEventListener ( MouseEvent.CLICK, handleChangeSound );
sound_2.addEventListener ( MouseEvent.CLICK, handleChangeSound );
sound_3.addEventListener ( MouseEvent.CLICK, handleChangeSound );

// sound off button
turn_off.addEventListener ( MouseEvent.CLICK, turnOffSound );

// sound off managining function
function turnOffSound ( e : MouseEvent ) : void
{
    SChannel.stop();
    SChannel = null;
    sound = null;
}

// are sounds in your library Sound_1 (), Sound_2 (), Sound_3 ()
function handleChangeSound ( e : MouseEvent ) : void
{
    // in my situation since the button names were sound_1, .._2, .._3
    // i can extract the sound id from names of the button.
    // if you have some different approach you just need to adopt it.
    var soundID : uint = e.target.name.split ( '_' )[1];

    // ifi sound is playing, stop it
    if ( SChannel )
    {
        turnOffSound(null);
    }

    // create new sound, from ID given
    switch ( soundID )
    {
        case 1 :
            sound = new Sound_1 ();
            break;

        case 2 : 
            sound = new Sound_2 ();
            break;

        case 3 :
            sound = new Sound_3 ();
            break;
    }

    // if sound was in the list start playing it.
    if ( sound )
    {
        SChannel = sound.play();
    }
}

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

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