tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
516
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von marian
    marian marian ist offline Mitglied Brokat
    Registriert seit
    Aug 2003
    Ort
    Lörrach
    Beiträge
    304
    Hi,
    Ich hab wegen meinem Script ein neues Thema aufgemacht da es sich jetzt nicht mehr um das for-schleifen Problem handelt.
    Ich hab jetzt die for schleife durch eine onEnterFrame function ersetzt die offline funktioniert, aber auf dem Server hab ich ein Problem mit den Variablen, die mir Nan oder 0 ausgeben. Getestet hab ich das durch ein TextfField welches mir die Variablen ausgibt.

    www.remworx.de /worx/bilder (die seite befindet sich im Aufbau!)

    und hier noch der Script:

    PHP-Code:
    // Tabelle setzen
    function tabelle(posXposYanzahl) {
        
    this.attachMovie("mc_thumbs""mc_thumbs"4);
        
    this.mc_thumbs._x posX;
        
    this.mc_thumbs._y posY;
        
    this.posY posY;
        
    this.posX posX;
        
    mc = new Array();
        
    mc anzahl;
        
    this.createEmptyMovieClip("inhalt"2);
        
    this.inhalt._y this.posY;
        var 
    0;
        var 
    0;
        var 
    0;
        var 
    enable 0;
        
    this.onEnterFrame = function() {
            if (
    k<anzahl) {
                
    nName "clip"+k;
                if (
    i<pS) {
                    
    this.mc_thumbs.attachMovie("contclip"nNamek);
                    
    this.mc_thumbs[nName].geladen 0;
                    
    this.mc_thumbs[nName]._width this.pB;
                    
    this.mc_thumbs[nName]._height this.pW;
                    
    this.mc_thumbs[nName]._x i*(this.pB+this.abst);
                    
    this.mc_thumbs[nName]._y j*(this.pW+this.abst);
                    
    this.mc_thumbs[nName].TposX this.mc_thumbs[nName]._x;
                    
    this.mc_thumbs[nName].TposY this.mc_thumbs[nName]._y;
                    
    this.mc_thumbs[nName].bildname mein_xml.firstChild.childNodes[k].attributes.name;
                    
    this.mc_thumbs[nName].beschreibung mein_xml.firstChild.childNodes[k].attributes.beschreibung;
                    
    this.mc_thumbs[nName].autor mein_xml.firstChild.childNodes[k].attributes.autor;
                    
    this.mc_thumbs[nName].nr "Bild "+(k+1)+" von "+(mein_xml.firstChild.childNodes.length);
                    
    this.mc_thumbs[nName].zeit 0;
                    
    this.mc_thumbs[nName].mc_bild.loadMovie(mein_xml.firstChild.childNodes[k].attributes.pic);
                    
    this.mc_thumbs[nName].pix mein_xml.firstChild.childNodes[k].attributes.pic;
                    
    ausgabe += "Bild="+mein_xml.firstChild.childNodes[k].attributes.pic+"\n";
                    
    //
                    //
                    
    this.mc_thumbs[nName].onRollOver = function() {
                        if (
    this.geladen == 1) {
                            
    _root.song2.start();
                            
    this._parent._parent.bildName this.bildname;
                            
    this.onEnterFrame = function() {
                                
    this.zeit++;
                                
    this._height pW+this.zeit*3;
                                
    this._width pB+this.zeit*3;
                                
    this._x -= this.zeit-1;
                                
    this._y -= this.zeit-1;
                                if (
    this.zeit>3) {
                                    
    delete this.onEnterFrame;
                                }
                            };
                            
    this.swapDepths(k++);
                            
    toolStart();
                            
    //this.mc_bild.play();
                            //
                            
    this.effeckt.gotoAndPlay("an");
                        }
                    };
                    
    this.mc_thumbs[nName].onRollOut = function() {
                        if (
    this.geladen == 1) {
                            
    //scale bilder klein 
                            
    this.onEnterFrame = function() {
                                
    this.zeit--;
                                
    this._width pB+this.zeit*3;
                                
    this._height pW+this.zeit*3;
                                
    this._x += this.zeit;
                                
    this._y += this.zeit;
                                if (
    this.zeit<1) {
                                    
    delete this.onEnterFrame;
                                    
    this.zeit 0;
                                    
    this._width pB;
                                    
    this._height pW;
                                    
    this._x this.TposX;
                                    
    this._y this.TposY;
                                }
                            };
                            
    //
                            
    this.effeckt.gotoAndPlay("aus");
                            
    toolStop();
                        }
                    };
                    
    this._parent._parent.toolTip.onMouseMove = function() {
                        
    updateAfterEvent();
                    };
                    
    // bilder gross laden
                    
    this.mc_thumbs[nName].onRelease = function() {
                        if (
    this.geladen == 1) {
                            
    autor this.autor;
                            
    bildname this.bildname;
                            
    bildNr += "BildNummer "+this.nr;
                            
    bildInfo this.beschreibung;
                            
    pix this.pix;
                            
    this._parent._parent.pixGross(pixautorbildnamebildNrbildInfo);
                        }
                    };
                    
    // Preview-Preloader
                    
    this.mc_thumbs[nName].onEnterFrame = function() {
                        
    //this.effeckt.gotoAndStop("warte");
                        
    var gesamt this.mc_bild.getBytesTotal();
                        var 
    bereits this.mc_bild.getBytesLoaded();
                        var 
    prozent bereits*100/gesamt;
                        
    this.balken_mc._width prozent*0.45;
                        var 
    pausgabe int(this.prozent)+"%";
                        
    this._parent._parent.ausgabe += "Bereits="+this.mc_bild.getBytesLoaded()+"\n";
                        
    warte_txt "";
                        if (
    prozent>=100) {
                            
    k++;
                            
    i++;
                            
    this.mc_bild._width 50;
                            
    this.mc_bild._height 50;
                            
    pausgabe "";
                            
    this._parent._parent.ausgabe += "Prozent="+prozent+"\n";
                            
    this._parent._parent.ausgabe += "Gesamt="+gesamt+"\n";
                            
    this._parent._parent.ausgabe += this.mc_bild+":Sichtbar="+this.mc_bild._visible+"\n";
                            
    this.geladen 1;
                            
    this.balken_mc._visible 0;
                            
    this.warte_txt "";
                            var 
    enable 0;
                            
    delete this.onEnterFrame;
                        }
                    };
                } else {
                    if (
    j<pR) {
                        
    j++;
                        
    0;
                    }
                }
            } else {
                
    delete this.onEnterFrame;
            }
        };

    kann das sein das sich irgendwelche onEnterFrame functionen überschreiben

    Oder könnte ihr mir nen Tip geben wie ich das besser Lösen könnte?!

    Gruß
     

  2. #2
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    getBytesTotal() ist am Anfang oft mal -1 oder 0. Das führt zu einer Division by Zero und zum NaN in prozent.

    Berechne die Prozente also erst, wenn getBytesTotal() größer als 0 ist.

    Gruß
    .
     

  3. #3
    Avatar von marian
    marian marian ist offline Mitglied Brokat
    Registriert seit
    Aug 2003
    Ort
    Lörrach
    Beiträge
    304
    Danke Datic!

    PHP-Code:
    if (gesamt 0) {

    wenn ich die prozentberechnung in die abfrage schreibe dann geht nichts mehr.
    Es scheint aber so, das die onEnterFunction über der if abfrage weiter läuft, siehe www.remworx.de worx/bilder.

    der script
    PHP-Code:
    // Tabelle setzen
    function tabelle(posXposYanzahl) {
        
    this.attachMovie("mc_thumbs""mc_thumbs"4);
        
    this.mc_thumbs._x posX;
        
    this.mc_thumbs._y posY;
        
    this.posY posY;
        
    this.posX posX;
        
    mc = new Array();
        
    mc anzahl;
        
    this.createEmptyMovieClip("inhalt"2);
        
    this.inhalt._y this.posY;
        var 
    0;
        var 
    0;
        var 
    0;
        var 
    enable 0;
        
    this.onEnterFrame = function() {
            if (
    k<anzahl) {
                
    nName "clip"+k;
                if (
    i<pS) {
                    
    this.mc_thumbs.attachMovie("contclip"nNamek);
                    
    this.mc_bild[nName].mc_bild._visible 0;
                    
    this.mc_thumbs[nName].geladen 0;
                    
    this.mc_thumbs[nName]._width this.pB;
                    
    this.mc_thumbs[nName]._height this.pW;
                    
    this.mc_thumbs[nName]._x i*(this.pB+this.abst);
                    
    this.mc_thumbs[nName]._y j*(this.pW+this.abst);
                    
    this.mc_thumbs[nName].TposX this.mc_thumbs[nName]._x;
                    
    this.mc_thumbs[nName].TposY this.mc_thumbs[nName]._y;
                    
    this.mc_thumbs[nName].bildname mein_xml.firstChild.childNodes[k].attributes.name;
                    
    this.mc_thumbs[nName].beschreibung mein_xml.firstChild.childNodes[k].attributes.beschreibung;
                    
    this.mc_thumbs[nName].autor mein_xml.firstChild.childNodes[k].attributes.autor;
                    
    this.mc_thumbs[nName].nr "Bild "+(k+1)+" von "+(mein_xml.firstChild.childNodes.length);
                    
    this.mc_thumbs[nName].zeit 0;
                    
    this.mc_thumbs[nName].mc_bild.loadMovie(mein_xml.firstChild.childNodes[k].attributes.pic);
                    
    this.mc_thumbs[nName].pix mein_xml.firstChild.childNodes[k].attributes.pic;
                    
    ausgabe.text += "Bild="+mein_xml.firstChild.childNodes[k].attributes.pic+"\n";
                    
    //
                    // Preview-Preloader
                    
    this.mc_thumbs[nName].onEnterFrame = function() {
                        
    this.effeckt.gotoAndStop("warte");
                        var 
    gesamt this.mc_bild.getBytesTotal();
                        var 
    bereits this.mc_bild.getBytesLoaded();
                        if (
    gesamt 0) {
                            var 
    prozent bereits*100/gesamt;
                            
    balken_mc._width prozent*0.45;
                            var 
    pausgabe int(this.prozent)+"%";
                            
    this._parent._parent.ausgabe.text += "Bereits="+this.mc_bild.getBytesLoaded()+"\n";
                            
    warte_txt "";
                            if (
    prozent>=100) {
                                
    k++;
                                
    i++;
                                
    this.mc_bild.stop();
                                
    this.mc_bild._visible 100;
                                
    this.mc_bild._width 50;
                                
    this.mc_bild._height 50;
                                
    pausgabe "";
                                
    this._parent._parent.ausgabe.text += "Prozent="+prozent+"\n";
                                
    this._parent._parent.ausgabe.text += "Gesamt="+gesamt+"\n";
                                
    this._parent._parent.ausgabe.text += this.mc_bild+":Sichtbar="+this.mc_bild._visible+"\n";
                                
    //--------------------------
                                
    this.geladen 1;
                                
    this.effeckt.gotoAndPlay("aus");
                                
    this.balken_mc._visible 0;
                                
    this.warte_txt "";
                                var 
    enable 0;
                                
    //--------------------------
                                
    delete this.onEnterFrame;
                            }
                        }
                    };
                    
    //
                    //
                    
    this.mc_thumbs[nName].onRollOver = function() {
                        if (
    this.geladen == 1) {
                            
    _root.song2.start();
                            
    this._parent._parent.bildName this.bildname;
                            
    this.onEnterFrame = function() {
                                
    this.zeit++;
                                
    this._height pW+this.zeit*3;
                                
    this._width pB+this.zeit*3;
                                
    this._x -= this.zeit-1;
                                
    this._y -= this.zeit-1;
                                if (
    this.zeit>3) {
                                    
    delete this.onEnterFrame;
                                }
                            };
                            
    this.swapDepths(k++);
                            
    toolStart();
                            
    this.mc_bild.play();
                            
    //
                            
    this.effeckt.gotoAndPlay("an");
                        }
                    };
                    
    this.mc_thumbs[nName].onRollOut = function() {
                        if (
    this.geladen == 1) {
                            
    //scale bilder klein 
                            
    this.onEnterFrame = function() {
                                
    this.zeit--;
                                
    this._width pB+this.zeit*3;
                                
    this._height pW+this.zeit*3;
                                
    this._x += this.zeit;
                                
    this._y += this.zeit;
                                if (
    this.zeit<1) {
                                    
    delete this.onEnterFrame;
                                    
    this.zeit 0;
                                    
    this._width pB;
                                    
    this._height pW;
                                    
    this._x this.TposX;
                                    
    this._y this.TposY;
                                }
                            };
                            
    //
                            
    this.effeckt.gotoAndPlay("aus");
                            
    toolStop();
                            
    this.mc_bild.gotoAndStop(1);
                        }
                    };
                    
    this._parent._parent.toolTip.onMouseMove = function() {
                        
    updateAfterEvent();
                    };
                    
    // bilder gross laden
                    
    this.mc_thumbs[nName].onRelease = function() {
                        if (
    this.geladen == 1) {
                            
    autor this.autor;
                            
    bildname this.bildname;
                            
    bildNr += "BildNummer "+this.nr;
                            
    bildInfo this.beschreibung;
                            
    pix this.pix;
                            
    this._parent._parent.pixGross(pixautorbildnamebildNrbildInfo);
                        }
                    };
                } else {
                    if (
    j<pR) {
                        
    j++;
                        
    0;
                    }
                }
            } else {
                
    delete this.onEnterFrame;
            }
        };

    :
     

  4. #4
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    hmm, was genau ist nun das Problem?

    Du hast da zugegebenermaßen ein recht langes und unübersichtliches Script, von daher fällt es mir (ohne die gesamte Datei vorliegen zu haben) nicht leicht, alles Zeile für Zeile durchzugehen und mir darüber Klarheit zu verschaffen, was genau passiert.

    Das Vorladen der Bilder scheint jedenfalls nun zu funktionieren...

    Soweit ich das überblicken kann, geht es darum, Thumbnails in diese kleinen Kästchen zu laden und einige Details zu den Bildern anzuzeigen. Mir ist nicht ganz klar, warum Du dafür eine "Unterbrechung" in der Schleife benötigst - ich mache das meistens so:
    • Thumbnail-Holder in einer Schleife instanzieren und plazieren

    • den Holdern die Bild-URL übergeben

    • sobald ein Holder sein Bild komplett geladen hat, wird auf der Übergeordneten Ebene (dort wo sich die Holder befinden) eine Funktion aufgerufen, die eine Variable hochzählt

    • Sobald der Wert dieser Variable dem Gesamtwert der Bilder entspricht, weiß ich, dass alle Bilder vorgeladen wurden, und kann weitermachen.

    Gruß
    .
     

  5. #5
    Avatar von marian
    marian marian ist offline Mitglied Brokat
    Registriert seit
    Aug 2003
    Ort
    Lörrach
    Beiträge
    304
    Ok das versteh ich das mein script evt paar meter zu lang ist und das sicher niemand lust hat das ganze ding ohne die Datei abzuarbeiten. Da das aber nur ein kleiner Teil vom kompletten script ist und die ganze Datei hochzuladen wäre kaum möglich da viele xml daten bilder usw noch dazu benötigt werden.

    Ich kürze jetzt den Script auf das absolut Wesentliche.

    Also mein Vorhaben ist, dass alle Bilder die sich in der ausgewählten kategorie befinden
    geladen werden und als kleine Thumbnails gescaled werden. (evtl lade ich später nur kleine Bilder und erst wenn man ein Thumbnail anklickt das Endsprechende in groß.)

    Die einzelnen Bilder sollen nacheinander geladen werden also erst wenn prozent>=100.
    (was offline prima funktioniert)

    Das Problem ist wenn die Abfrage "gesamt > 0" im script steht wird nur ein Thumbnail-halter geladen und kein Bild.

    Wenn ich die Abfrage "gesamt > 0" weglasse werden meistens alle halter geladen aber die Bilder sind meistens nicht sichtbar, also extrem Buggy.

    Ich habe den Preeloader in eine onEnterFrame function verschachteln das es den oberen teil vom Script nicht ständig durchleuft, aber anscheinend functioniert das serverseitig nicht korekt.

    Das Problem sind wohl die Variablen und das der preeloder nicht richtig in einer onEnterFunction verschachtelt ist. ---> ab // Preview-Preloader

    PS: du hast warscheinlich meine Seite aufgerufen wo ich verschiedene Script Varianten hochgeladen habe.


    Ich hoffe der Script ist so ein wenig übersichtlicher.


    PHP-Code:
    // Tabelle setzen
    function tabelle(posXposYanzahl) {
        
    this.attachMovie("mc_thumbs""mc_thumbs"4);
        
    mc = new Array();
        
    mc anzahl;
        var 
    0;
        var 
    0;
        var 
    0;
        var 
    enable 0;
        
    this.onEnterFrame = function() {
            if (
    k<anzahl) {
                
    nName "clip"+k;
                if (
    i<pS) {
                    
    this.mc_thumbs.attachMovie("contclip"nNamek);
                    
    this.mc_bild[nName].mc_bild._visible 0;
                    
    this.mc_thumbs[nName].geladen 0;
                    
    this.mc_thumbs[nName]._width this.pB;
                    
    this.mc_thumbs[nName]._height this.pW;
                    
    this.mc_thumbs[nName]._x i*(this.pB+this.abst);
                    
    this.mc_thumbs[nName]._y j*(this.pW+this.abst);
                    
    this.mc_thumbs[nName].TposX this.mc_thumbs[nName]._x;
                    
    this.mc_thumbs[nName].TposY this.mc_thumbs[nName]._y;        
    this.mc_thumbs[nName].pix=ein_xml.firstChild.childNodes[k].attributes.pic;                        this.mc_thumbs[nName].mc_bild.loadMovie(mein_xml.firstChild.childNodes[k].attributes.pic);
                    
                    
    ausgabe.text+="Bild="+mein_xml.firstChild.childNodes[k].attributes.pic+"\n";
                    
    //
                    // Preview-Preloader 
                    
    this.mc_thumbs[nName].onEnterFrame = function() {
                        var 
    gesamt this.mc_bild.getBytesTotal();
                        var 
    bereits this.mc_bild.getBytesLoaded();
                        if (
    gesamt 0) {
                            var 
    prozent bereits*100/gesamt;
                            
    balken_mc._width prozent*0.45;
                            var 
    pausgabe int(this.prozent)+"%";
                            if (
    prozent>=100) {
                                
    k++;
                                
    i++;
                                
    this.mc_bild._visible 100;
                                
    this.mc_bild._width 50;
                                
    this.mc_bild._height 50;
                                
    delete this.onEnterFrame;
                            }
                        }
                    };
                    
                    
                    
                } else {
                    if (
    j<pR) {
                        
    j++;
                        
    0;
                    }
                }
            } else {
                
    delete this.onEnterFrame;
            }
        };

     

  6. #6
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    warum so kompliziert?

    Ich hab mal schnell was zusammengebaut, was (hoffentlich) Deinem Vorhaben in etwa entspricht. Du stößt im Prinzip nur den Ladevorgang des ersten Thumbnail-Holders an und dieser löst das Laden des jeweils nächsten aus, indem er die entsprechende Funktion im Hauptscript aufruft (siehe Anhang);

    Gruß
    .
    Angehängte Dateien Angehängte Dateien
     

  7. #7
    Avatar von marian
    marian marian ist offline Mitglied Brokat
    Registriert seit
    Aug 2003
    Ort
    Lörrach
    Beiträge
    304
    DANKE

    Ich glaube ich habe neigungen zu komplizierten Lösungen.
    Ich werd mich mal in deinen Script einarbeiten und versuchen das xml fähig zu machen.
    greatz
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 01.11.07, 10:08
  2. QuarkXpress 5.0 - Leporello 8-seitig, Zickzack
    Von AlexBlue im Forum Desktop Publishing (DTP)
    Antworten: 8
    Letzter Beitrag: 29.05.07, 20:00
  3. preload - funktioniert im Firefox, aber nicht im IE
    Von montii im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 07.03.05, 23:32
  4. preload - bildernamen eingefügt - hier klappt aber nix?
    Von subzero im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 17.02.03, 00:38
  5. Antworten: 2
    Letzter Beitrag: 13.02.02, 14:57