2016-08-18 3 views
0

Ich habe eine Ein/Aus-Taste für Sound mit Flash AS3 erstellt. Diese funktionieren, aber immer wenn ich die Aus-Taste und dann die Ein-Taste drücke, wird die Musik nicht wieder abgespielt?Looping Sound Flash as3

Ich glaube, es ist ein Looping-Problem, aber könnte ich falsch liegen? Ich bin mir nicht sicher, welchen Code ich verwenden soll, wenn es sich um ein Loop-Problem handelt.

Ich muss auch Code für die btnOn-Funktion hinzufügen, als wenn ich die .swf öffne den Sound automatisch spielt.

Beigefügt ist mein aktueller Code unten:

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file) 

var myChannel:SoundChannel = new SoundChannel(); 

var lastPosition:Number = 0; 

myChannel = mySound.play(); 

btnOff.addEventListener(MouseEvent.CLICK, onClickPause); 

function onClickPause(e:MouseEvent):void { 

lastPosition = myChannel.position; 

myChannel.stop(); 

} 

Prost :)

+0

_ „... wenn ich öffnen Sie die .swf der Ton automatisch spielt“ _ so was denken Sie diese Anweisung tut: 'myChannel = mySound .play(); '? Wenn Sie möchten, dass etwas passiert ** nur ** wenn Sie auf klicken, dann fügen Sie diese Anweisung in eine Klick-Bearbeitungsfunktion ein. PS: Ist die Funktion 'onClickPause' diejenige, von der erwartet wird, dass sie das Audio sowohl pausiert als auch wieder aufnimmt? –

Antwort

0

nur Ihr Code zeigt den Ereignis-Listener onClickPause (I thinkt das ist Ihre Stopp-Taste). Aber wo ist der Event-Listener für den Start/Play-Button? Auf der Wiedergabetaste müssen Sie die Wiedergabefunktion erneut aufrufen. Hier ist ein großes Tutorial: http://www.republicofcode.com/tutorials/flash/as3sound/

+0

Ich habe es versucht, aber der Code funktioniert nicht? – ConfusedDreamweaverUser

+1

Können Sie Ihren vollständigen Code veröffentlichen? Wo ist dein Code für die Play/Resume-Taste? –

0

Sie können den folgenden Code versuchen. Es verwendet eine Taste für die Audio-Pause/Resume-Funktionalität ...

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file) 
var myChannel:SoundChannel = new SoundChannel(); 
var lastPosition:Number = 0; 
var audioState : String = "paused"; //will become either "playing" or "paused" 


myChannel = mySound.play(); //this line starts playback 
audioState = "playing"; //update because you started playback with above line 

btnOff.addEventListener(MouseEvent.CLICK, onPlayPause); 


function onPlayPause(e:MouseEvent):void 
{ 

    if (audioState == "playing") //IF already playing 
    { 
     lastPosition = myChannel.position; //note current "audio time" when pausing 
     myChannel.stop(); //stop playback 
     audioState = "paused"; //update for next time click is used 
    } 
    else if (audioState == "paused") //or ELSE IF was already paused then... 
    { 
     myChannel = mySound.play(lastPosition); //resume playback 
     audioState = "playing"; //update for next time click is used 
    } 

}