Problème son d'une video qui continue malgré un changement de swf externe
biguiz
Messages postés198Date d'inscriptionvendredi 4 avril 2008StatutMembreDernière intervention 6 novembre 2009
-
17 août 2008 à 18:27
cs_Gonets
Messages postés5Date d'inscriptionvendredi 23 mai 2008StatutMembreDernière intervention14 avril 2009
-
7 avril 2009 à 02:43
Bonjour à tous et à toutes,
Je réalise actuellement un cdrom. Mon menu appelle des swf externes pour chaque partie. Je possède une rubrique video que je charge donc avec un swf externe. Le problème et que lorsque je change de partie, mon swf externe est enlevé grâce à un RemoveChild, le swf externe désiré est affiché, mais le son de la vidéo de mon fichier videos.swf continue alors que le swf dont il est issu a été supprimé grâce donc à un RemoveChild.
Comment alors faire pour que lorsque je change de partie, le son également diaparaisse ?
//Code pour charger et afficher le swf externe artistes.swf
var chargeura2:Loader=new Loader();
var adressea2:UrlRequest=new UrlRequest("artistes.swf")
Appel du swf externe :
menu.artistes.addEventListener(MouseEvent.CLICK,arti)
function arti(event:MouseEvent):void{
chargeura2.load(adressea2)
addChild(chargeura2)
}
//Code pour supprimer le swf externe videos.swf qui avait été chargé auparavant
menu.artistes.addEventListener(MouseEvent.CLICK,arti2)
function arti2(event:MouseEvent):void{
removechild(chargeurv2)
}
//Code dans le swf video.swf pour afficher les vidéos selon le bouton cliqué
ecranVideo.fullScreenTakeOver=false;
ecranVideo.visible=false
biguiz
Messages postés198Date d'inscriptionvendredi 4 avril 2008StatutMembreDernière intervention 6 novembre 2009 19 août 2008 à 09:49
Bon j'ai trouvé la solution pour ceux qui auraient le même problème.
Alors dans le swf principal il faut rajouter un "unload juste après removechild".
Et dans le swf enfant d'où provient la vidéo, il faut rajouter ceci :
loaderInfo.addEventListener(Event.UNLOAD, unloadHandler);
function unloadHandler(e:Event):void{
flash.media.SoundMixer.stopAll() ;}
biguiz
Messages postés198Date d'inscriptionvendredi 4 avril 2008StatutMembreDernière intervention 6 novembre 2009 24 août 2008 à 19:18
Merci pour l'info !
J'avais déjà essayé de définir mon objet vidéo en tant que null mais malgré tout le son ne s'arrêtait pas.
En gros à quoi sert le trace ? Et que veut dire exactement ceci :
trace (monObjetVideo); // ouput [object Object]
monObjetVideo = null;
trace (monObjetVideo); // undefined
Improve
Messages postés176Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention28 novembre 2009 24 août 2008 à 20:03
L'action trace te permettra d'interroger ton programme.
C'est pourqoui celà est nécessaire car il te donne toute les infos lors du développement de ton projet.
Avant que tu trouve la solution à ton problème si tu avais tracé tu aurais vu que ton removeChild( );
enlève l'affichage à l'écran mais pas nécessairement de la mémoire, donc l'objet existait encore.
Mais maintenant tu as trouvé la solution.