begin process at 2012 05 27 20:23:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Multimédia

 > 

Audio

 > 

son et currentFrame


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

son et currentFrame

jeudi 10 septembre 2009 à 17:09:35 | son et currentFrame

duceduce

bonjour à tous,
j'ai un problème très simple à résoudre pour certains d'entre vous.
voilà j'ai un son que je load dans une animation
puis après c'est un SWF. je voudrais qu'au moment où je suis sur la frame qui load mon swf le son loadé avant s'arrête (logique puisque j'ai du son dans mon swf).
bref j'ai mis mon swf dans un clip afin d'utiliser le currentFrame et que dal ca marche pas en même temps je débute!!! je vous balance mon script.
si quelqu'un peut me dépanner ca serait cool.
merci




stop();
var ecoute = new Sound();
var adresseFichierSon = new URLRequest("musique/herbaliser.mp3");
var canal:SoundChannel = new SoundChannel();
ecoute.load(adresseFichierSon);

page_mc.addEventListener(event,ecouterSon);
function ecouterSon(pevt:event):void
{
if (page_mc.currentFrame = 2)
{
canal.stop()
}
else
{
canal = ecoute.play();
}

}

jeudi 17 septembre 2009 à 01:22:06 | Re : son et currentFrame

sep2vigne

Salut,

Je vois deux problèmes dans ton code :

1. page_mc.addEventListener(event,ecouterSon);
Pour que cela fonctionne il faut préciser le type d'event que tu veux écouter.
Par exemple : page_mc.addEventListener(Event.ENTER_FRAME, ecouterSon);
// le ENTER_FRAME déclenche la fonction associée à chaque fois que la tête de lecture arrive sur une nouvelle frame.
// c'est pas top au niveau de l'optimisation


2. if (page_mc.currentFrame = 2)
le "si A égal B" s'écrit comme ça : if (page_mc.currentFrame == 2)

Dans ton cas il est peut-être encore plus simple d'appeler canal.stop() sur l'image 2.
Maintenant je sais pas exactement ce que tu veux faire. Tu veux relancer le son après ? Où si on revient en arrière ?

Bon courage



jeudi 17 septembre 2009 à 12:05:24 | Re : son et currentFrame

duceduce

merci pour ta réponse en fait j'ai trouvé plusieurs trucs qui me faisaient pas mal chier.
en fait quand je loadais mon swf dans mon animation principale, je voulais non seuleument que le son de mon anim principale s'arrête pour jouer le son qui était dans le swf loadé mais aussi que mon swf loadé s'arrête sur sa dernière frame jouée (normal).

je ne sais pas si tu connais un truc tout bête pour arrêter tous les sons joués sur la scène:
SoundMixer.stopAll();

ca c'est pour le son et pour interagir entre SWF je me faisais pas mal chier avec un localconnection (très con!)
alors j'ai trouvé ca

dans mon animation principale je met:

chargeur.addEventListener( "finAnim", onFinAnim);

function onFinAnim( pEvt:Event ):void
{
MovieClip(parent).gotoAndStop(2)
}


et sur le dernière frame de mon swf loadé

dispatchEvent( new Event( "finAnim" ) );


le dispatchEvent est super pratique pour plein de truc paraît il faut que j'approfondisse le truc.

il me reste cependant deux questions

pourquoi le dispatchEvent ne gère pas d'écraser le son du swf chargé?
je n'ai pas encore essayé mais il faut à mon avis que je rebalance un SoundMixer.stopAll();


et surtout dans mon code je demande de passer à la frame 2 du parent et là ca ne marche pas sinon le swf s'arrête bien

voili voilu

merci pour ton aide sep2vigne
ps:j'adore le pinard..............

jeudi 17 septembre 2009 à 20:02:48 | Re : son et currentFrame

sep2vigne

Le pinard c'est la vie

Je n'ai jamais utilisé la méthode SoundMixer.stopAll();... à voir

Pour ce qui est du dispatchEvent, c'est effectivement très utile voir indispensable.

un exemple. Imagine que tu ais 2 MovieClip, C1 et C2.
C1 écoute, C2 diffuse :

- dans C1, tu associes une fonction F à un événement E
("evenement_E", fonction_F);
- dans C1 tu surveilles si C2 diffuse l'événement E
Tu ajoutes donc le listener à C2
C2.addEventListener("evenement_E", fonction_F);
- dans C2, tu diffuse l'événement E afin que la fonction F soit exécutée (elle sera executée dans C1 .. tu m'suis?)
dispatchEvent(new Event("evenement_E")); ou this.dispatchEvent(new Event("evenement_E"));

Tu peux très bien utiliser les dispatchEvent au sein d'un même clip :
addEventListener("evenement_E", fonction_F);
dispatchEvent(new Event("evenement_E"));

ce qu'il faut comprendre c'est ...
... pour le listener : "qui j'écoute ?"
... pour le dispatcher : "ou est-ce que je vais diffuser mon événement ?"

dans les deux cas, la réponse est à placer avant "addEventListener" et "dispatchEvent" :
moi.addEventListener > je n'écoute que les événements qui aurront lieu dans moi.
toi.dispatchEvent > seuls les écouteurs de toi pourront recevoir cet événement.

bref, il doit y avoir des tas de tutos là d'ssus sur l'net.


Dans ton cas là, je pense que le problème vient du fait que tu n'écoutes pas au bon endroit.
Si ton "chargeur" est de la classe Loader, ton nouveau but dans la vie c'est d'atteindre le contenu de ce Loader pour pouvoir le manipuler.
Et c'est comme ça qu'on y accède :
contenu = chargeur.contentLoaderInfo.content;

Dans la pratique on stock contenu dans une variable MovieClip:
var contenu:MovieClip = chargeur.contentLoaderInfo.content as MovieClip;

et à partir de là, tu peux manipuler "contenu" comme bon te semble.
Tu peux appeler ses fonctions, lui dispatcher des Event ou dans ton cas écouter ses dispatch à lui.

Je te laisse potasser tout ça,
J'éspère t'aider un peu
bon courage

Voici un exemple complet :

Code ActionScript :

// l'url du swf à charger
var fichier:URLRequest = new URLRequest("fichier.swf")
// le loader
var chargeur:Loader = new Loader ();
// on lui ajoute un listener pour surveiller la fin du chargement
chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
// et on lance le chargement
chargeur.load(fichier);

// quand le chargement est terminé
function onComplete(_event:Event):void
{
// on stock le swf chargé comme un MovieClip dans la variable anim
var anim:MovieClip = _event.target.content as MovieClip;

// à partir de là on peu appeler les fonctions du swf chargé
// par exemple "demarre()" qui serait une fonction déclarée dans le swf chargé
// et qui permettrai de ne lancer la lecture qu'une fois celui-ci bien chargé par le loader
anim.demarre();

// on lui ajoute le listener qui écoutera l'événement FIN_ANIM dans "anim"
// c'est donc bien dans "anim" qu'on fera un dispatchEvent(new Event("FIN_ANIM"));
anim.addEventListener("FIN_ANIM", onFinAnim);
}

// la fonction appelée graçe au dispatchEvent
function onFinAnim(_event:Event):void
{
trace("joie");
lanceSon();
coupeSon();
faisCeQueTuVeux();
}

vendredi 18 septembre 2009 à 01:07:08 | Re : son et currentFrame

duceduce

okok bon là je pars en vacance j'ai pas trop le temps et tout ça me donne mal crâne mais c'est pas très intéressant. effectivement je débute et j'adore ce logiciel et son langage. Pour ce qui est des infos c'est super sympa d'avoir des gens à l'écoute enfin balabla, mais c'est sincère. Dès que je rentre je potasse et je te la colle au juliénas (mon pif préféré). c'est dingue de discuter as3 sur un forum de programmation et de parler pinard mais j'aime mieux ca.
je vais voir ton script je pense que je vais pouvoir résoudre pas mal de problème.
si jamais on pourra se filer nos adresses mail histoire d'échanger du script qui va bien même si je crois que tu n'auras pas grand chose à apprendre de moi.

ciaoooooooo et bon courage si ca bosse.

www.vincegallery.com

(à voir si jamais)



Cette discussion est classée dans : load, var, swf, ecoute, currentframe


Répondre à ce message

Sujets en rapport avec ce message

Load Movie, ../movie [ par Simoya ] Bonjour, j'aimerais savoir s'il est possible de faire un 'load movie' si les deux .swf ne sont pas dans le même fichier.Exemple:j'ai un fichier q Un preload vraiment dynamique ?? [ par unz ] Salut,j'ai une question que me pose ma graphiste préférée :Elle a tout un stock d'animations qui n'ont pas de preload.(une bonne centaine en tout)Elle Comment récupérer le contenu d'une var globale [ par falafab ] Bonjour,Sur une page htm, je possède 2 frames.Chaque frame contient un flash.sur le premier swf, j'ai créer une var global: _global.mavar;par contre, scroll_target dans un .swf, activé par load movie [ par guest ] Ma page principale comprend un bouton qui appelle un .swfpar l'action Load movie.Lorsque le .swf est appellé, l'action tell target (scroll_target) à l load movie pb [ par agaillar ] bonjour!!je fais un petit jeu en flash et j ai des boutons qui permettent de naviguer entre différents .swfle seul problème c est que j ai pas reussi probleme avec un swf loadé dans un clip [ par zatjem ] bon je load un swf dans un cliple clip est sur la time line principalej appel ce swf avec un bouton il se load bien mais je narrive pas à intéagir ave Catch une URL pour la mettre dans une var [ par Jeho ] Bonjour, je m'explik:je tape une URL qui load un swf... au TOUT DEBUT du code du swf.. j'aimerai prendre l'url tapée..pour la mettre dans une variable load movie [ par kaotrik ] Bonjour,j'ai mis ça dans un de mes swfon (release) { loadMovieNum("movie1.swf", 1);}il charge donc le fichier movie1.swf...mais j'aimerais qu'il se load swf [ par webfaze ] salut! Je voudrais appelé un swf avec loadmovienum au niveau1 par ex. et l'envoyé à la keyframe 10 swf0 charge swf1 (niveau1) comment envoyé swf1 di recup de var entre swf.... [ par jultoys ] Bijour tout l monde, me revoila avec une question pas piquée des hannetons...Voila, j ai un swf qui doit en charger un autre dans un clip prevu à cet


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales