Aller au contenu

[RESOLU]flash: slider volume


Poroot

Messages recommandés

Salut,

j'essaye de faire mon lecteur flv,

avec seulement 3 boutons et un slider de volume.

les 3 boutons marchent

le slider (8 de large sur 7,6 de haut) de volume glisse bien sur son rail dimension 100px large par 5px de haut)

par contre comment je fais ensuite pour relier mon slider et mon rail pour le controle du son svp ?

voila ce que j'ai:

mes boutons lecture/pause/stop

stop();
btn_l.onRelease = function() {
gotoAndStop(2);
;
};

var netConn:NetConnection = new NetConnection();
netConn.connect(null);
var netStream:NetStream = new NetStream(netConn);
maVideo.attachVideo(netStream);
netStream.setBufferTime(3);
netStream.play("http://video.flv");

btn_p.onRelease =  function() {
netStream.pause();
};

btn_a.onRelease = function() {
netStream.play("");
gotoAndStop(1);
};

et pour mon slider sur le rail j'ai ça pour le moment:

slider.onPress = function() {
this.startDrag(true,_root.rail._x,_root.rail._y,_root.rail._x+100,_root.rail._y);
}

slider.onRelease = function() {
this.stopDrag();
}

merci par avance,

je cherche dans les tutos un peu partout mais je n'y arrive pas.

Lien vers le commentaire
Partager sur d’autres sites

le slider se déplace bien sur le rail

par contre ça ne controle plus le son

help :heben:

SonVideo.attachAudio(GestionFluxVideo);
var VolumeVideo:Sound = new Sound(SonVideo);
VolumeVideo.setVolume(260);
var son = VolumeVideo.getVolume();
slider._x = son;
this.ratio = 0;

slider.onPress = function() {
this.startDrag(true,190,290.6,rail._x+100,290.6);
this.onEnterFrame = function() {
ratio = Math.round(this._x*100/rail._x);
VolumeVideo.setVolume(ratio);
};
};
slider.onRelease = slider.onreleaseOutside=stopDrag;
slider.onReleaseOutside = slider.onreleaseOutside=stopDrag;

Lien vers le commentaire
Partager sur d’autres sites

cest completement normal vu ke ton slider est pas lié a ton son.

Je connais pas tellement le controle des sons dans Flash, mais essaie dajouter dans ton onEnterFrame un truc du genre, et vois ce ke ca fait.

sonRatio = (son.duration - rail._width)/rail._width;
son.position  = -slider._x * sonRatio;

Pour etre franc, ce serait super etonnant ke ca fonctionne mais ca peut etre une premiere piste (ou pas).

Dans tous les cas, si tu peux lier ton .fla, ca pourrait tjs aider.

bon courage

Lien vers le commentaire
Partager sur d’autres sites

merci

je ne comprends pas, le code tel quel marchait avec les positions à 0x et 0y

avec le controle du son et tout

mais dès que j'essaye de mettre le slider dans le rail, j'ai plus le réglage du son qui marche :(

voila le fichier via messagerie, il faudra un petit .flv pour le faire marcher

(l'esthétique ça viendra plus tard :up: )

Lien vers le commentaire
Partager sur d’autres sites

ah pardon, jai mal lu ton probleme: je pensais ke tu cherchais a faire un slider de defilement, et non pas un slider de volume.

le code tel quel marchait avec les positions à 0x et 0y avec le controle du son et tout

kel genre de controle de son ?

Je comprends pas bien ce ke tu ve dire.

Je regarde ton fichier dans lapresmidi :up:

Lien vers le commentaire
Partager sur d’autres sites

ah pardon, jai mal lu ton probleme: je pensais ke tu cherchais a faire un slider de defilement, et non pas un slider de volume.
le code tel quel marchait avec les positions à 0x et 0y avec le controle du son et tout

kel genre de controle de son ?

Je comprends pas bien ce ke tu ve dire.

Je regarde ton fichier dans lapresmidi :up:

pas grave c'est moi qui m'explique mal :)

ok je t'ai envoyé la version qui marche mais pas là ou je veux :up:

Lien vers le commentaire
Partager sur d’autres sites

Tout marchait tres bien!

Le probleme venait du fait ke une fois que tu placais le slider dans son rail, tu continuais a vouloir regler le son en fonction de slider._x... par rapport a l'absolu.

Hors quand tu as placé le slider dans son rail, tu lui as indique une position _x egale a la position _x du rail.

Ton ratio etait donc egal a rail._x + slider._x, donc forcement toujours au dessus de 100 (qui est le volume maximum).

Il faut donc calculer ton ratio en prenant en compte la position du slider par rapport au rail, et non pas par rapport a la scene!

Soit ratio = Math.round(((slider._x - rail._x)*100)/rail._width);

Jai rajouté une variable pour regler le volume de base, ce sera plus simple pour le modifier si tu le souhaites.

var volumeDepart:Number = 70; //volume au lancement de la video

Enfin jai fait en sorte que ton slider soit positionné des le depart en fonction de la place de ton rail. Donc si tu souhaites modifier linterface, tu as juste a bougé ton rail, et le slider suivra :up:

var volumeDepart:Number = 70; //volume au lancement de la video


SonVideo.attachAudio(GestionFluxVideo);
var VolumeVideo:Sound = new Sound(SonVideo);
VolumeVideo.setVolume(volumeDepart);
var son = VolumeVideo.getVolume();
slider._x = rail._x + volumeDepart;
slider._y = rail._y;
this.ratio = 0;

slider.onPress = function() {
this.startDrag(true,rail._x,rail._y,rail._x + rail._width,rail._y);
this.onEnterFrame = function() {
	ratio = Math.round(((this._x - rail._x)*100)/rail._width);
	trace(ratio);
	VolumeVideo.setVolume(ratio);
};
};
slider.onRelease = slider.onreleaseOutside=stopDrag;
slider.onReleaseOutside = slider.onreleaseOutside=stopDrag;

:up:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...