crasse2 | super ! merci pour ton aide !
bon bein grace a ça j'y suis presque, voila ou ça en est :
Code :
- var netConn:NetConnection= new NetConnection();
- netConn.connect(null);
- var netStream:NetStream = new NetStream(netConn);
- maVideo.attachVideo(netStream);
- netStream.setBufferTime(10);
- netStream.play("http://www.quart-avant-poing.com/video/war_111111.avi.FLV" );
- this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 1200, 22);
- loaded_txt.textColor="0xFFFFFF";
- this.createTextField("tete", this.getNextHighestDepth(), 10, 10, 1200, 22);
- tete.textColor="0xFF0000";
- var myformat:TextFormat = new TextFormat();
- myformat.font = "Verdana";
- myformat.size = 9 ;
- myformat.letterSpacing = 10;
- var large = 1223; // largeur de la bar
- var video = 49; // Durée de la vidéo en secondes
- var pb = this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
- pb._x = 57;
- pb._y = 725;
- this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
- progressBar_mc.createEmptyMovieClip("bar_mc", progressBar_mc.getNextHighestDepth());
- with (progressBar_mc.bar_mc) {
- beginFill(0xFFFFFF);
- moveTo(0,0);
- lineTo(0, 15);
- lineTo(1223, 15);
- lineTo(1223, 0);
- lineTo(0, 0);
- endFill();
- _xscale = 0;
- }
- progressBar_mc.createEmptyMovieClip("stroke_mc", progressBar_mc.getNextHighestDepth());
- progressBar_mc.createEmptyMovieClip("stroke_mc2", progressBar_mc.getNextHighestDepth());
- with (progressBar_mc.stroke_mc) {
- lineStyle(0, 0xFFFFFF);
- moveTo(0, 0);
- lineTo(0, 15);
- lineTo(0, 0);
- }
- with (progressBar_mc.stroke_mc2) {
- lineStyle(0, 0xFFFFFF);
- moveTo(1223, 0);
- lineTo(1223, 0);
- lineTo(1223, 15);
- }
- var tete:MovieClip = pb.createEmptyMovieClip("stroke_mc", pb.getNextHighestDepth());
- tete.beginFill(0xff0000);
- tete.moveTo(0, 0);
- tete.lineTo(0, 15);
- tete.lineTo(5, 15);
- tete.lineTo(5, 0);
- tete.lineTo(0, 0);
- tete.endFill();
- tete.onPress = function() {
- // Tu limites les mouvement de ta tête pour pas qu'elle se balade.
- this.startDrag(false,large,0);
- };
- tete.onRelease = tete.onReleaseOutside = function() {
- this.stopDrag();
- // Quand on relache, on envoit la position de la tête à une fonction
- changeVideo(this._x);
- };
- function changeVideo(coord) {
- var res = Math.round((coord*100) / large);
- tete.text = Math.round((coord*100) / large) + "% de la vidéo, soit :"+ (video*res)/100+"sec" ;
- tete.setTextFormat(myformat);
- var tps = (video*res)/100;
- bar_mc._xscale = res;
- netStream.seek(tps);
- }
- var loaded_interval:Number = setInterval(checkBytesLoaded, 500, netStream);
- function checkBytesLoaded(my_ns:NetStream) {
- var pctLoaded:Number = Math.round(my_ns.bytesLoaded/my_ns.bytesTotal*100);
- loaded_txt.text = Math.round(my_ns.bytesLoaded/1000)+" of "+Math.round(my_ns.bytesTotal/1000)+" KB loaded ("+pctLoaded+"%)";
- loaded_txt.setTextFormat(myformat);
- progressBar_mc.bar_mc._xscale = pctLoaded;
- if (pctLoaded>=100) {
- clearInterval(loaded_interval);
- }
- }
- btn_l.onRelease = function() {
- netStream.pause();
- };
- btn_a.onRelease = function()
- {
- netStream.play("" );
- gotoAndStop(1);
- };
|
j'ai effectivement deplacé mon clip des le depart, donc c'est plus propre effectivement au niveau des coordonnées, j'ai aussi rajouté la fonction "seek" pour que la tete de lecture remplisse pleinement sa fonction lorsqu'elle est deplacée (la video reprend sa lecture au niveau de la noouvelle position de la tete); reste juste un petit truc pour parfaire l'ensemble :
je n'arrive pas a caller la tete de lecture sur la progression de la lecture de la video, donc je peux la deplacer, mais lorsque que je la lache, elle reste immobile, or ce serait chouette qu'elle se remette a avancer au meme rythme que la video.
saurais-tu comment y parvenir ? |