2016-08-18 2 views
0

J'ai créé un bouton marche/arrêt pour le son utilisant Flash AS3. Ceux-ci fonctionnent mais chaque fois que j'appuie sur le bouton d'arrêt puis sur le bouton marche, la musique ne joue plus? Je crois que c'est un problème de boucle mais pourrais-je me tromper? Je ne suis pas sûr du code à utiliser s'il s'agit d'un problème de boucle.looping sound flash as3

J'ai également besoin d'ajouter du code pour la fonction btnOn car lorsque j'ouvre le fichier .swf, le son est lu automatiquement.

Ci-joint mon code actuel ci-dessous:

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(); 

} 

cheers :)

+0

_ « ... quand j'ouvre le .swf le son joue automatiquement » _ alors que pensez-vous de cette instruction est en train de faire: 'mychannel = mySound .play(); '? Si vous voulez que quelque chose se produise ** seulement ** lorsque vous cliquez, alors mettez cette instruction dans une fonction de gestion des clics. PS: La fonction 'onClickPause' est-elle celle attendue à la fois pour mettre en pause et reprendre l'audio? –

Répondre

0

Votre code ne montre que l'écouteur d'événement onClickPause (je thinkt c'est votre bouton d'arrêt). Mais où est l'écouteur d'événement pour le bouton démarrer/jouer. Sur le bouton de lecture, vous devez rappeler la fonction de lecture. Voici un excellent tutoriel: http://www.republicofcode.com/tutorials/flash/as3sound/

+0

J'ai essayé mais le code ne fonctionne pas? – ConfusedDreamweaverUser

+1

Pouvez-vous poster votre code complet? Où est votre code pour le bouton lecture/reprise? –

0

Vous pouvez essayer le code ci-dessous. Il utilise un bouton pour la fonctionnalité pause/reprise audio ...

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 
    } 

}