2010-03-30 8 views
0

J'ai un swf principal qui a des boutons de son on/off. Il a beaucoup de fichiers SWF qui sont chargés dans différents espaces réservés à différents moments. Tous ont des sons différents en eux. En plus de cela, il y a une boucle de musique en arrière-plan.Arrête tous les sons de manière permanente dans AS3

Maintenant, ce swf perticular permet de l'appeler Père sera placé dans un swf plus tard. Ce que j'essaie de faire en ce moment, c'est lorsque le bouton d'arrêt du son est pressé, éteignez tous les sons en permanence pour que l'enfant suf et que leurs sons s'arrêtent aussi.

J'ai trouvé une façon AS2:

global = new Sound() //no movie clip target path. 

and add the following code to your off button. 

on(release){ 
global.setVolume(0); //mutes all sound 
} 

and for on button 

on (release) { global.setVolume (100); // un mute tous les sons }

qui bien sûr ne fonctionne pas pour AS3. Alors, comment puis-je arrêter tous les sons en permanence dans AS3? Deuxièmement, que faire si j'ai un son (ma boucle d'arrière-plan) que je veux continuer.

Cela demanderait beaucoup d'aide, la recherche depuis un moment sans réponse appropriée.

Répondre

3

flash.media::SoundMixer.soundTransform fait ce que vous avez fait à l'AS2.

utilisation:

SoundMixer.soundTransform = new SoundTransform(0); 

note cependant, cela ne s'arrête pas la lecture, il vous permet de couper que tous les sons.

+0

Mais si je veux laisser un son sur et tout le reste au large? –

0

Si vous utilisez AS3, vous devriez utiliser son(), SoundChannel() et SoundTransform() comme ceci: méthode

urlReq = new URLRequest("location of audio file"); 
audio = new Sound(urlReq); 
soundChannel = audio.play(); 

Vous pouvez ensuite appeler childswfs SoundChannel.stop().

Cela devrait arrêter tout le son. Ensuite, assignez des sons différents pour séparer les SoundChannels, de cette façon vous pouvez en couper un et en garder un autre.

espoir qui aide

1
import flash.media.SoundMixer; 
import flash.media.SoundTransform; 

// volume limits are 0 to 1 (0.1,0.2,0.3,...,1) 
SoundMixer.soundTransform = new SoundTransform(0); 

Cela devrait fonctionner :)

Questions connexes