cs_alise
Messages postés
2203
Date d'inscription
lundi 12 juillet 2004
Statut
Membre
Dernière intervention
26 janvier 2010
3 sept. 2005 à 09:11
Sur ta scène un bouton Play (btPlay) et un bouton Pause (btPause), sur la première image de ton scénario le script suivant:
// Prototypes de dessin pour tracer un rectangle
MovieClip.prototype.trace_rectangle = function (xpos,ypos,largeur,hauteur,epaisseur_trait,couleur_trait,alpha_trait,couleur_rempli,alpha_rempli) {
this.lineStyle (epaisseur_trait,couleur_trait,alpha_trait) ;
this.beginFill(couleur_rempli , alpha_rempli );
this.init_api (epaisseur_trait,couleur_trait,alpha_trait) ;
this.init_color (couleur_rempli,alpha_rempli) ;
this.moveTo (xpos,ypos) ;
this.lineTo (xpos+largeur,ypos) ;
this.lineTo (xpos+largeur,ypos+hauteur) ;
this.lineTo (xpos,ypos+hauteur) ;
this.lineTo(xpos,ypos) ;
}
// Prototype permettant de retracer un rectangle en effaçant avant le contenu du clip.
MovieClip.prototype.retrace = function () {
this.clear () ; // on efface tout les tracés dynamiques.
this.trace_rectangle (this.posx,this.posy,this.largeur,this.hauteur,this.epaisseur,this.colorTrait,this.alphaTrait,this.colorRempli,this.alphaRempli) ;
}
// Prototype qui permet d'initialiser les propriétés de la barre de chargement
MovieClip.prototype.InitApi = function() {
this.posx = 0 ; // on place dans le clip le rectangle en x=0
this.posy = 80 ; // on place dans le clip le rectangle en y=80
this.largeur = 0 ; // on défini par défaut une largeur nulle
this.hauteur = 4 ; // on défini la hauteur de la barre
this.epaisseur = 1 ; // on défini l'épaisseur du contour
this.colorTrait = 0x000000 ; // on défini la couleur du contour
this.alphaTrait = 0 ; // on défini l'alpha du contour (ici il est nul)
this.colorRempli = 0x660000 ; // on défini la couleur de remplissage
this.alphaRempli = 100 ; // on défini l'alpha du remplissage
}
monSon = new Sound(); // on créer l'objet Son
monSon.savePosition = 0 ; // initialisation de la position de lecture du son en cours
monSon.loadSound("musique.mp3",true) ; //le nom de ton son.mp3
monSon.onSoundComplete = function () { // si la musique est finie
this.start() ; // on relance la musique
}
MovieClip.prototype.init = function () {
this._x = 25 ; // placement selon x du clip
this._y = 100 ; // placement selon y du clip
this.longueurBarre = 100 ; // Taille totale de la barre en largeur
this.createTextField("duree", 1, 0, 0, 250, 25); // Création d'un champ de texte qui affichera le temps écoulé depuis la lecture du morceau.
this.createTextField("total", 2, 0, 25, 250, 25); // Création d'un champ de texte qui affichera la durée totale du morceau.
this.createTextField("percent", 3, 0, 50, 250, 25); // Création d'un champ de texte qui affichera l'avancement de la lecturee du morceau en %.
this.createEmptyMovieClip("barre" , 4 ) ; // création d'un clip qui affichera une barre de progression de la lecture.
this.barre.InitApi () ; // Initialisation des propriétés graphiques pour le tracé de la barre de progression.
// on fait en sorte que les champs dynamiques ne soient pas sélectionnables.
this.duree.selectable = false ;
this.total.selectable = false ;
this.percent.selectable = false ;
}
// Prototype qui permet de mettre à jour le Clip observant la lecture du morceau de musique
MovieClip.prototype.lecture = function () {
var pourcent = _root.monSon.position/_root.monSon.duration * 100 ; // rapport de l'avancement de la lecture en %
var progress = _root.monSon.position/1000 ; // on affecte la progression en seconde de la lecture du morceau (rappel Sound.position est en ms)
// Mise à jour des champs de texte dynamiques pour l'affichage
this.total.text = "Durée Totale du morceau : " + parseInt(_root.monSon.duration/1000)+" secondes"; // Affichage de la durée totale du morceau en seconde
this.duree.text = "Temps écoulé : " + parseInt(progress)+" secondes"; // Affichage du temps écoulé
this.percent.text = "Avancement de la lecture : " + parseInt(pourcent) + "%" ; // Affichage de l'avancement de la lecture en %
this.savePosition = progress ; // mise en mémoire de la progression du morceau pour l'utilisation de la pause (bouton pause et play)
// On dessine la barre de chargement de la musique
// rapport de l'avancement de la lecture en fonction de la longueur réelle de la barre
this.barre.largeur = _root.monSon.position /_root.monSon.duration * this.longueurBarre ;
// on retrace la barre
this.barre.retrace() ;
// met à jour les informations affichées (voir référence flash MX)
updateAfterEvent() ;
}
_root.createEmptyMovieClip("clip", 20) ; // on crée un clip qui servira d'espion pour observer la progression de la lecture du son.
_root.clip.init () ; // on initialise le clip
_root.clip.onEnterFrame = function() {
this.lecture () ;
}
// Evènements sur les boutons btPlay et btPause.
function lire () {
_root.monSon.start(_root.clip.savePosition); // on lance le son au niveau de la position courante enregistrée
}
function pause () {
_root.monSon.stop() ; // on stoppe le son
delete _root.monClip.onEnterFrame ; // on détruit la boucle infinie pour libérer la mémoire
}
btPlay.onRelease = lire ; // on affecte l'évènement du bouton btPlay
btPause.onRelease = pause ; // on affecte l'évènement du bouton btPause
C'est un script d'Eka de media-box, qui n'est peut-être pas de la toute dernière génération, mais qui fonctionne à merveille.
Alise
from RunIsland