Problème de définition d'une variable...enfin, je crois!

Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 - 1 avril 2005 à 21:44
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 - 2 avril 2005 à 13:58
Salut,

Je débute en action-script donc j'ai repiqué le code d'un lecteur mp3.
Le problème est que j'essaye de modifier certaines données du code pour
l'adpater à mes besoins et je bloque sur un truc en particulier:

Au départ, tous les sons étaient en attachSound. J'en ai fait des loadSound,
ça me paraissait logique puisque je charge les sons depuis une source externe
spécifiée par un url! De plus, je pensais au début que remplacer des
attachSound par des loadSound ne demandait pas de transformer la structure
du code. C'est du moins ce que je pensais au début parce que j'ai changé d'avis.

Sur la frame d'origine, voici le code (les commentaires sont d'origine aussi, ils ne
sont pas de moi):

/* La plus grande partie du code se trouve sur cette frame, le reste est dans le
bouton pause ainsi que dans la définition du clip curseur ...*/
// new sound = nouveau son, on attribue cette valeur a la variable musique


musique = new Sound(this);


// attachsound sert à attacher un son de la bibliothèque
// par défault aucun son n'est attaché (inutile en fait ;-) )


musique.attachSound("");


// setVolume = réglage du volume du son attaché
// 50 par défault ( sur 100 )


musique.setVolume(50);


// setPan = positionne la balance
// 0 , c-a-d au milieu, par défault


musique.setPan(0);


// position des curseurs servant à regler le volume et la balance,
50 ( au milieu ) par défault


volume.curseur._x = 50;

balance.curseur._x = 50;


// affichage de la durée du son ( en secondes ) dans le champ de texte "pos"
sur la scene


_root.onEnterFrame = function() {

_root.pos = Number(musique.position)/1000;


// affichage de la durée finale du son dans le champ de texte "dur" sur la scene


_root.dur = Number(musique.duration)/1000+" s";

};


// BOUTON PLAY


_root.boutonplay.onRelease = function() {

musique.stop();

musique.start(0, 999);

_root.pause = 0;

_root.boutonpause.gotoAndStop(1);

};


// joue le son précédement attaché, 1 fois .
si on clic sur PLAY, la PAUSE est désactivée
// BOUTON STOP


_root.boutonstop.onRelease = function() {

musique.stop();

};


// BOUTON VOLUME


_root.volume.onEnterFrame = function() {

_root.musique.setVolume(this.curseur._x);

_root.vol = this.curseur._x;

};


// BOUTON BALANCE


_root.balance.onEnterFrame = function() {

_root.musique.setPan((this.curseur._x-50)*2);

_root.bal = this.curseur._x;

};


// CURSEUR
// ce clip va permettre a l'utilisateur de suivre "graphiquement" l'évolution du
son choisi.


_root.curseur.onEnterFrame = function() {

this.barre._x = Number((_root.musique.position/_root.musique.duration))*100;

};


// la position _x ( abcisses ) de la barre du clip est définie par la relation :
( position / duration ) * 100
// Logique !


musique.onSoundComplete = function() {

musique.attachSound("");

musique.start(0, 999);

Personnellement, j'aimerais précharger 3 musiques différentes qui soient audibles
en fondsonore sur mon site. J'aimerais donc que l'utilisateur puisse passer d'une
musique à l'autre en cliquant sur un bouton! C'était déjà faisable sur le lecteur
d'origine. Le code de ces boutons était celui-ci:

on (release) {
_root.musique.stop();
_root.musique.attachSound("son01");
_root.type = "musique 1";
_root.musique.start(0, 99);
}

Voilà pour le code d'origine.
En ce qui me concerne, j'ai rajouté les codes suivant sur la frame:

musique01 = new Sound();
musique02 = new Sound();
musique03 = new Sound();

musique01.loadSound("son01.mp3",false);
musique01.onLoad : function(){
musique01.stop();
}
musique02.loadSound("son02.mp3",false);
musique02.onLoad : function(){
musique02.stop();
}
musique03.loadSound("son01.mp3",false);
musique03.onLoad : function(){
musique03.stop();
}

Ensuite, sur mes boutons, j'ai mis ceci:

bouton1
on (release) {
_root.musique.stop();
_root.type = "musique 1";
_root.musique01.start(0, 99);
}
bouton2
on (release) {
_root.musique.stop();
_root.type = "musique 2";
_root.musique02.start(0, 99);
}
bouton3
on (release) {
_root.musique.stop();
_root.type = "musique 3";
_root.musique03.start(0, 99);
}

Le code fonctionne en ce qui concerne les boutons! Quand je clique dessus,
la musique se met en route mais là où ça foire, c'est que rien n'est géré,
c'est-à-dire: le volume, la balance, les boutons play, stop, pause, etc.
Cela signifie que c'est au niveau du:

musique = new Sound(this);
musique.attachSound("");

...qu'il y a un problème! En tous cas, je suppose que c'est la définition de la
variable qui est inadéquate dans le cas d'un loadSound!

J'ai supposé que le this signifiait que la variable musique correspondait au son
actif dans le clip mais je ne comprend pas bien à quoi sert l'attachSound qui
suit!

Bref, je sais que c'est un peu fastidieux mais si quelqu'un pouvait m'éclairer,
ce serait super sympa! D'avance, merci!
A voir également:

4 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
1 avril 2005 à 22:04
heu, tu devrais peut-être demander des renseignements à la personne qui a mis la source à dispo, là où tu l'as trouvée, tu ne crois pas ?
Il est le plus à même de te renseigner sur sa propre source...

Peg'
0
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
1 avril 2005 à 23:15
Déjà...évite ces gros caractères...ça fait mal aux zieux!!! lol

Sinon, ben tu vois pas que le volume est géré sur l'objet Sound créé au début? J'ai pas trop d'expérience dans les players MP3, mais je ferai mes loadSound dans l'objet "musique", et j'en créerai pas un différent pour chaque son (pour 3 ça va, mais quand t'en auras 50???).

Voilà...donc à mon avis, y'a du remaniement de code à faire en profondeur! Faire le loadSound par exemple sur release du bouton...enfin là c'est une idée, j'sais pas si c'est la bonne façon de faire!

Donc comme l'a dit Peg' , tu peux toujours demander au créateur de la source qui doit être plus au courant de la chose (player MP3!)

@+! Samy
0
Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 1
2 avril 2005 à 11:15
Mettre le loadsound sur les boutons, c'est ce que j'avais fais au départ mais faire ça signifie que le son va commencer à se charger seulement quand l'utilisateur appuyera sur le bouton, ce qui signife qu'il va entendre un son saccadé, qui se coupera par certains moments! J'aurais voulu éviter ça!

Le lecteur que j'ai utilisé, je crois qu'il est fourni par Macromédia, c'est un modèle officiel, quoi! Mais je ne suis plus sûr, je vais chercher où je l'ai trouvé!
0
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
2 avril 2005 à 13:58
Suis pas sûr de moi...mais en général le son se charge plus vite qu'il n'est lu non? Enfin, c'est la fonctionnalité du "streaming"

En tout cas, y'a une solution à ton problème, ça c'est sûr!

@+! Samy
0
Rejoignez-nous