FLV Player macht Zikken

tobsnn

Mitglied
Hey Guys.

Hab 'ne kurze Frage. Ich möchte bei dem FLV Player die Zeitleiste unten in der Länge verändern. Das Problem das ich jetzt habe ist, dass sobald ich die Leiste (bestehend aus progressBar, percentBar, backBar und scrubBut) in ihrer Länge verändere, also skaliere, die gesammte Zeitskalierung der Leiste im ist.

Ihr müsst euch das vorstellen wie beim Windows Media Player. Ihr guckt nen Film der 2 Stunden geht und nach 10 Minuten ist unten der Zieher aus der Zeitleiste rechts rausgefallen.

Weis jemand wie man das universal für verschiedene videolängen in Flash machen kann

Hier, das ist was ich schon habe. Vermute irgentwas an dem xscale oder so muss ich ändern aber ich hab wirklich keinen blassen Dunst .

PHP:
// Stage Vars

Stage.align="CC";
Stage.showMenu = false;
Stage.scaleMode = "noScale";

// file to stream 

_root.file == undefined ? _root.file="presents.flv" : null;
videoDisplay.setMedia(_root.file, "FLV");

//_root.preload_flag == undefined ? _root.preload_flag = 1 : null;


preloading();

// mute button

videoDisplay.volume = 100;
volBut.onPress = function() {
    if (this.wave._visible == false) {
        videoDisplay.volume = 100;
        this.wave._visible = true;
    } else {
        videoDisplay.volume = 0;
        this.wave._visible = false;
    }
};

//play and pause buttons

playBut._visible = false;
pauseBut.onPress = function() {
    videoDisplay.pause();
    playBut._visible = true;
    this._visible = false;
};
playBut.onPress = function() {
    videoDisplay.play();
    pauseBut._visible = true;
    this._visible = false;
};

stopBut.onPress = function() {
    videoDisplay.stop();
    playBut._visible = true;
    pauseBut._visible = false;
    this._visible = true;
};

// file load progress

function preloading() {
//percentBar.onEnterFrame = function() {

    trace("Preloading");

    loaded = this._parent.videoDisplay.bytesLoaded;
    total = this._parent.videoDisplay.bytesTotal;

    if (_root.preload_flag == 1) {
        if (loaded == total && loaded>1000) {
            percentBar._xscale = 100;
            delete this.onEnterFrame;
            _root.preload_flag = 0;
        } else {
            percentBar._xscale = int(loaded/total*100);
        }
    }
};



// scrub button 

scrubBut.onEnterFrame = function() { 
    progressBar._xscale = videoDisplay.playheadTime / videoDisplay.totalTime * 100;
    this._x = progressBar._x + progressBar._width;
    progressBar._xscale > 99.5 ? reStart() : null;
};
scrubBut.onPress = function() {
    delete this.onEnterFrame; 
    this.left = percentBar._x;
    this.right = percentBar._x + percentBar._width-13;
    this.startDrag(false, this.left , this._y, this.right , this._y);
    this.onEnterFrame = function() {
        videoDisplay.play((this._x - this.left)/(this.right - this.left) * videoDisplay.totalTime);
        progressBar._xscale = videoDisplay.playheadTime / videoDisplay.totalTime * 100;
    };
};
scrubBut.onRelease = function() {
    this.stopDrag();
    delete this.onEnterFrame;
    this.left = percentBar._x;
    this.right = percentBar._x + percentBar._width-13;
    videoDisplay.play((this._x - this.left)/(this.right - this.left) * videoDisplay.totalTime);
    progressBar._xscale = videoDisplay.playheadTime / videoDisplay.totalTime * 100;
    this.onEnterFrame = function() { 
        progressBar._xscale = videoDisplay.playheadTime / videoDisplay.totalTime * 100;
        this._x = progressBar._x + progressBar._width; 
        progressBar._xscale > 99.5 ? reStart() : null;
    };
};

// file end function

function reStart() {
    videoDisplay.play(0);
    playBut._visible = true;
    pauseBut._visible = false;
    videoDisplay.pause();
};

Schonmal nen fettes Danke an alle die nen guten Rat wissen

tobsn
 
Zuletzt bearbeitet:
Hi,

in diesem Fall wäre es sinnvoll, Du würdest die komplette .fla mit dem Player posten.

In meinem Player (siehe http://www.ekto.net) passe ich die Suchleiste an, indem ich aus den Metadaten des Films die Länge auslese - egal wie breit der Balken ist, die Suche geht immer von 0 bis 100%.

Gruß

Anmerkung: Die wenigsten hier (auch ich) geben gerne Support für fremde Projekte. Oftmals übersteigt der Aufwand fürs Einlesen/Ändern den für eine komplette Neukonstruktion. In diesen Fällen geht es meist schneller, den Urheber der Komponente zu kontaktieren.
.
 
Zurück