2013-08-04 5 views
0

내 actionscript 3 프로젝트에 도움이 필요합니다. 소리가있는 버튼이 있습니다. 나는 버튼을 누르면 사운드가 재생되고, 버튼을 다시 누르면 소리가 멈추는 코드 (아래 참조)가 있습니다 (음소거/음소거 해제 버튼과 같은). 문제는 두 번째 소리 (두 번 같은 소리)를 재생할 때 버튼을 누르면 두 번째 소리가 재생되고 버튼을 누르면 소리가 여러 번 반복되는 것과 같은 소리가 여러 번 재생된다는 것입니다. 문제를 해결하도록 도와 주시겠습니까? 고맙습니다.액션 스크립트 3의 음소거 음소거 해제 버튼

function setMute1(vol){ 
     sTransform1.volume = vol; 
     SoundMixer.soundTransform = sTransform1; 
    } 

    var sTransform1:SoundTransform = new SoundTransform(1,0); 
    var Mute1:Boolean = true; 
    sound1_btn.addEventListener(MouseEvent.CLICK,toggleMuteBtn1); 

    function toggleMuteBtn1(event:Event) { 
    if(Mute1 === false) { 
     Mute1 = true; 
     setMute1(0); 
    } else { 
     Mute1 = false; 
     setMute1(1); 
    } 
    } 
+1

문제와 같은 소리가 재생 기능 내에 있으며, 해당 코드도 표시 할 수 있습니까? –

+0

소리를 멈추거나 음을 소거 하시겠습니까? 그것은 2 가지 다른 것들입니다. – putvande

+0

나는 소리를 내고, 음소거하고 음소거를 해제하기 위해 클릭 한 버튼이 하나뿐입니다. 소리는 버튼에 있습니다 (동일한 버튼에 지정). 풋 번데가 맞아. 버튼은 소리가 나지 않고 음소거를 해제하지 않고 재생 및 정지해야합니다. 한 번 클릭하면 소리를내는 버튼의 코드를 두 번 클릭하면 소리를 멈추게 할 수 있습니까? – Marianna

답변

4

사운드를 시작하는 버튼을 프레임에 지정하여 시작하는 것으로 알고 있습니까? 사운드를 좋은 방법으로 제어하려면 코드로 의 사운드를 시작해야합니다.

다음은 코드를 기반으로 외부 mp3 파일을로드하는 작동 예제입니다. 동일한 버튼을 통해 소리가 재생되고 중단됩니다.

// load the sound 
var mySound:Sound = new Sound(); 
mySound.load(new URLRequest("loop.mp3")); 
var myChannel:SoundChannel = new SoundChannel(); 
// tool you need for manipulating the volume; 
var sTransform1:SoundTransform = new SoundTransform(1,0); 
// The sound starts not muted 
var Mute1:Boolean = true; 
var vol:Number = 0; 

sound1_btn.addEventListener(MouseEvent.CLICK,toggleMuteBtn1); 
// Set the sound volume; 
function setMute1(vol) 
{ 
    sTransform1.volume = vol; 
    SoundMixer.soundTransform = sTransform1; 
    // Check if sound is muted 
    if (vol<=0) 
    { 
     Mute1 = true; 
    } 
    else 
    { 
     Mute1 = false; 
    } 
} 
// Start/stop sound 
function startOrStop() 
{ 
    if (Mute1 === false) 
    { 
     myChannel.stop(); 
     setMute1(0); 
    } 
    else 
    { 
     setMute1(1); 
     myChannel = mySound.play(); 
    } 
} 
// This happens when you click the buttom 
function toggleMuteBtn1(event:Event) 
{ 
    startOrStop() 
} 

actionscrip 2에서이 이 더 이상 액션 스크립트 3 당신이 할 수없는에서, 모든 소리 중지 할 기능,하지만 당신은 여전히 ​​프레임에 소리를 할당 할 수 있습니다.

+0

당신은 답이 컸고 나에게 많은 도움이되었습니다. 미안 해요 나는 사이트에 새로운 오전과 나는 이해가 안 : 어떻게 대답을 upvote? – Marianna

+0

감사합니다. 위쪽을 가리키는 회색 화살표를 클릭합니다. upvote 수 있도록 15 명성을 필요로하는 것 같습니다. 참조 : http://meta.stackexchange.com/questions/7237/how-does-reputation-work – user2650087

1

이 예는 사운드를 음소거하거나 음소거 해제합니다. 소리가 멈추지 않고 그냥 음소거되었습니다. 또한 사운드는 코드에 으로 지정해야하며 프레임에는 지정해야합니다.

// load the sound 
var mySound:Sound = new Sound(); 
mySound.load(new URLRequest("loop.mp3")); 
var myChannel:SoundChannel = new SoundChannel(); 
// tool you need for manipulating the volume; 
var sTransform1:SoundTransform = new SoundTransform(1,0); 
// The sound starts not muted 
var Mute1:Boolean = true; 
var vol:Number = 0; 

sound1_btn.addEventListener(MouseEvent.CLICK,toggleMuteBtn1); 
// Set the sound volume; 
function setMute1(vol) 
{ 
    sTransform1.volume = vol; 
    SoundMixer.soundTransform = sTransform1; 
    // Check if sound is muted 
    if (vol<=0) 
    { 
     Mute1 = true; 
    } 
    else 
    { 
     Mute1 = false; 
    } 
} 
// Toggle mute on/off 
function toggleMute() 
{ 
    if (Mute1 === false) 
    { 
     setMute1(0); 
    } 
    else 
    { 
     setMute1(1); 
    } 
} 
// This happens when you click the buttom 
function toggleMuteBtn1(event:Event) 
{ 
    // if not playing, the sound 
    if (myChannel.position != 0) { 
    } else { 
     myChannel = mySound.play(); 
    } 

    toggleMute(); 
} 
관련 문제