Salut à tous,

J'ai un petit problème de gestion de son.
J'aimerais contrôler le volume de plusieurs objets-son à partir d'un seul curseur mais je rencontre des difficultés pour y parvenir.
J'ai créé un petit jeu contenant 2 curseurs de réglage du volume: un pour régler la musique d'ambiance, un autre pour régler les "effets de son" (boutons d'interface, etc). Je demande donc à chaque curseur d'agir sur une liste d'objets-son. Le problème, c'est qu'en faisant un rendu de l'anim, je constate que le curseur dédié au volume des "effets de son" gère aussi le volume de la musique et que le curseur dédié à la musique ne gère rien du tout! Je trouve ça assez étrange.
Voici mon code:
sound1 = newSound();
sound1.attachSound("over");
sound2 = newSound();
sound2.attachSound("down");
sound3 = newSound();
sound3.attachSound("intro");
sound4 = newSound();
sound4.attachSound("CRRRR");
sound5 = newSound();
sound5.attachSound("birdVictory");
sound6 = newSound();
sound6.attachSound("PLINC");
sound7 = newSound();
sound7.attachSound("error");
sound8 = newSound();
sound8.attachSound("ambiance");onEnterFrame = function(){
//Instructions d'interactivité pour les boutons "volume"
var curseurMus:MovieClip = curseursVol_mc.musique_mc.curseur_mc;
var curseurFX:MovieClip = curseursVol_mc.soundFX_mc.curseur_mc;
curseurMus.onPress = function() {
startDrag(this, false, 0, 0, 100, 0);
};
curseurMus.onRelease = function() {
stopDrag();
};
curseurFX.onPress = function() {
startDrag(this, false, 0, 0, 100, 0);
};
curseurFX.onRelease = function() {
stopDrag();
};
sound3.setVolume(curseurMus._x);
sound8.setVolume(curseurMus._x);
sound1.setVolume(curseurFX._x);
sound2.setVolume(curseurFX._x);
sound4.setVolume(curseurFX._x);
sound5.setVolume(curseurFX._x);
sound6.setVolume(curseurFX._x);
sound7.setVolume(curseurFX._x);};
Je constate, si j'inverse l'ordre des déclarations, c'est-à-dire en mettant derrière les objets qui utilisent curseurMus._x comme propriété:
ActionScript:
sound1.setVolume(curseurFX._x);
sound2.setVolume(curseurFX._x);
sound3.setVolume(curseurMus._x);
...que c'est le curseur de la musique qui contrôle l'ensemble de mes objets-son et plus le curseur des "effets de son" comme si c'était le paramètre dans les parenthèses de la dernière déclaration qui était pris en compte pour tous les objets.
J'ai aussi fais le test suivant:
ActionScript:
var over:Number = sound1.getVolume;
var down:Number = sound2.getVolume;
var intro:Number = sound3.getVolume;
trace("over = "+over);
trace("down = "+down);
trace("intro = "+intro);
...et je suis étonné de constater que le panneau de sortie me renvoie ceci:
over = [type Function]
down = [type Function]
intro = [type Function]
Pourquoi [type Function] plutôt que des entiers?
On m'a aussi conseillé de créer mes objets son sur des clips comme ceci:
sound = newSound(clip);
sound.attachSound("lien");
et j'ai donc fais l'essai:
sound1 = newSound(supportSound1_mc);
sound1.attachSound("over");
sound2 = newSound(supportSound2_mc);
sound2.attachSound("down");
sound3 = newSound(supportSound3_mc);
sound3.attachSound("intro");
sound4 = newSound(supportSound4_mc);
sound4.attachSound("CRRRR");
sound5 = newSound(supportSound5_mc);
sound5.attachSound("birdVictory");
sound6 = newSound(supportSoud6_mc);
sound6.attachSound("PLINC");
sound7 = newSound(supportSound7_mc);
sound7.attachSound("error");
sound8 = newSound(supportSound8_mc);
sound8.attachSound("ambiance");Je constate certains changements mais effectivement, le problème est toujours là! La différence c'est qu'à présent, j'ai le curseur musique qui contrôle le volume de la musique et le curseur "effets de son" qui contrôle les effets de son
et la musique! Super! Je comprend pas pourquoi ça fait ça!
Voilà, si quelqu'un comprend ce qui se passe ou s'il pense à une meilleure méthode, ça m'aiderait beaucoup!
Merci!
