Aller au contenu

[RESOLU]flash: slider volume

Featured Replies

Posté(e)

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.

Posté(e)
  • Auteur

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;

Posté(e)

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

Posté(e)
  • Auteur

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: )

Posté(e)

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:

Posté(e)
  • Auteur
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:

Posté(e)

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:

Posté(e)
  • Auteur

meeeeeeeeeeeeeerci à toi!

et c'est bien d'avoir posté ici pour les autres, bien vu :up:

je zappe encore trop de choses niveau logique en programmation :up:

Posté(e)

par contre hesite pas a editer le titre de ton post avec un <RESOLU> devant :transpi:

Posté(e)
  • Auteur
par contre hesite pas a editer le titre de ton post avec un <RESOLU> devant :censored:

je pensais l'avoir fait mais c'était pour un autre post, sowwy :cartonrouge:

Archivé

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