Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

Re: son et bouton

Envoyé: 5 mars 2002, 10h26 par Oznog


Salut,

Le truc avec le sont est de te créer un MovieClip qui contient un attachesound et tous les boutons pour le manipuler. Le tout à l'intérieur du MovieClip.

Beaucoup plus simple à manipuler. Et si tu veux y accéder à l'extérieur du movieClip, il suffit d'indiquer la cible (target) selon l'instance sur la scène de ton MovieClip. Mis rien n'indique si le son joue ou pas. Tu dois te créer une variable et la mettre à jour manuellement pour le savoir.

a. quand tu par un son tu met une variable boléenne à vrais (vJoue=true) et quand tu arrête un son tu remet cette variable à faux (vJoue=false). De cette façon tu n'as qu'à tester si vJoue == false alors part le son et met vJoue à vrais... Quand tu arrête le son tu remet vJoue à false...

Par exemple ce MovieClip.

1. IL FAUT ABSOLUMENT DONNER UN NOM DE "LINKAGE" au son avec cette méthode. Importe ton son dans la librairie. Ensuite clic sur ton son dans la librairie et avec le menu (flèche en haut à droite de la fenêtre Librairie.) sélectionne LIKAGE. Clic "Export this symbol" et donne lui un nom "identifiant". Ce nom est en quelque sorte son nom d'intance virtuel.

2. Le MovieClip qui va contenir le son et les bouton doit être placé sur la scène et tu dois lui donner comme nom d'instance le même que l'identifiant (linkage) du son dans la librairie.

Tu le glisse sur la scène et tu ajoute dessus l'action "Objects Actions": C'est pour initialiser ton son.

onClipEvent (load) {
// LOAD = une seul fois.
// Cré un nouvel objet de type SON
// et lui attache un son de la librairie
// en utilisant l'identifiant de linkage.
// NOTE que this._name est le nom de l'instance
// du MovieClip sur la scène. C'est pour que le code
// soit portable sans changer ce code... Et c'est pourquoi
// l'instance du MovieClip doit être le même que le linkage du son.
mcSon1 = new Sound(this);
mcSon1.attachSound(this._name);

// Déclaration et initialisation des propriété du son
var loops = 500;
var secondOffset = 0;
var volume = 100;
var pan = 0;
// Variable qui t'indique si le son joue ou non...
// Puisqu'il ne joue pas au départ elle est à false...
var nJoue = false;

}
onClipEvent (enterFrame) {
// enterFRAME = à chaque frame. (12 fois par seconde).
// Ajuste le son et le pan (qui peuvent être modifié
// dynamiquement dans le MovieClip.
mcSon1.setVolume(volume);
mcSon1.setPan(pan);
}

3. Dans ton MovieClip, tu à deux bouton, un STOP et l'autre GO. Pour l'action du stop c'Est très simple sauf qu'il ne faut pas oublier de mettre nJour à false pour indiquer que ton son ne joue plus.

on (press) {
// Arrête le son de mcSon1 et met nJoue à faux.
mcSon1.stop();
nJoue = false;
}

4. Pour le bouton GO: Tu dois t'assurer qu'il ne joue pas avant, avec un test de condition. !nJoue = NOT nJoue ou si nJoue = faux alors joue et met nJoue à vrais.

on (press) {
// Test si nJoue est à false ou faux
if (!nJoue) {
// Si le nJoue est à false alors part le son...
// Puisque tu sait que nJour à false indique que
// le son est arrêté.
mcSon1.start(secondOffset,loops);
// Et bien sûr met nJoue à true pour indiquer que
// le son joue présentement...
nJoue = true;
}
}

Voilà

Pour manipuler le son à l'extérieur du MovieClip depuis la scène utilise ce ciblage (target):

POUR GO:

on (release) {
// MovieClip temporaire t pour temp, tMc
var tMc;

tMc = _root["mcSon1"];
if (!tMc.nJoue) {
tMc.mcSon1.start(tMc.secondOffset, tMc.loops);
tMc.nJoue = true;
}

POUR STOP

on (release) {
var tMc;
tMc = _root["mcSon1"];
tMc.mcSon1.stop();
tMc.nJoue = false;
}

Avec ça tu peux pratiquement tout faire car il suffit d'ajouter un nouveau MovieClip avec comme instance "mcSon2" pour avoir un deuxième son.

Ciao
Oznog


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@