Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-09-2005, 21:34   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 315
Warteschleife beim Laden externer jpgs

Ewig lang schon nicht mehr hier gewesen und dann gleich eine so dumme Frage .. sorry. Meinen Dank schon jetzt all denen, die sich die Mühe machen das hier zu lesen.

Also, Ziel ist eine kleine Galerie in Flash welche extern zu ladende jpgs verwendet. Im ersten Schritt werden die Thumbnails der Bilder in vorher vorbereitete Container geladen. Damit das alles geordnet abläuft soll Flash immer Zweiergruppen von Thumbnails laden und dann warten, bis diese beiden Bilder geladen sind. Ist das erledigt sind die nächsten beiden dran. Und genau hier liegt mein Problem, Flash kümmert sich nicht um die Warteschleife sondern läuft weiter. Am Ende passt zwar alles, aber die innere Schleife fehlt ...

Auf der Zeitleiste sieht das wie folgt aus:

frame x:

// Zähler initiieren
i = 1;

frame x+1 (als pre_2 bezeichnet):

// Containernamen bestimmen
ziel_1 = "th_c_"+i;
ziel_2 = "th_c_"+(i+1);
// Pfad zum zu ladenden jpg bestimmen
name_1 = path + i +"k.jpg";
name_2 = path + (i+1)+"k.jpg";
// jpg in den Container laden
loadMovie(name_1, ziel_1);
loadMovie(name_2, ziel_2);

frame x+2:

// Gesamtgröße der Thumbs ermitteln
max_1 = eval(ziel_1).getBytesTotal();
max_2 = eval(ziel_2).getBytesTotal();

frame x+3 (als pre_3 bezeichnet):

// Aktuellen Ladestand ermitteln
akt_1 = eval(ziel_1).getBytesLoaded();
akt_2 = eval(ziel_2).getBytesLoaded();

frame x+4:

// Entweder 1 oder 2 sind noch nicht fertig - dann warten
if ((akt_1 < max_1) || (akt_2 < max_2)) {
gotoAndPlay("pre_3");
}

frame x+5:

// Zähler hochsetzen
i = i+2;
// wenn noch nicht max, dann weitere Thumbs laden
if (i<=10) {
gotoAndPlay("pre_2");
}

Wie gesagt, es werden alle 10 Thumbnails sauber in Ihre Container geladen, die äußere Schleife funktioniert also .. nur die innere irgendwie nicht. Die Variablen max_1/2 und akt_1/2 sind am Ende korrekt besetzt, also kann der Fehler imho nicht da drin liegen .. aber wo sonst sollte das Problem sein? Sorry, ich steh echt am Schlauch ...

Grüßle
Tom

PS Weiter hinten beim Laden der "großen" Bilder passiert der gleiche Fehler noch mal ..
Raven ist offline   Mit Zitat antworten
Alt 26-09-2005, 07:09   #2 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
hast Du Dir schon mal die Werte der Variablen ausgeben lassen (tracen)?
Vielleicht passt da ja was nicht?
__________________
Grüße,
solo

Die Antwort auf fast alle Fragen gibt es hier: AS-Referenz
Weitere Fehlerquellen sind:
Flasche Pfadangeben oder falsch versorgte Variablen. Beides kann man gut hiermit überprüfen.
Und den Debugger gibts ja auch noch :)
soloFlash ist offline   Mit Zitat antworten
Alt 26-09-2005, 08:51   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 315
Hallo Solo,
erst mal Danke!

Offline bringt mir das Tracen leider wenig, da die jpgs ja sofort da sind. Am Ende allerdings stehen die richtigen Werte drin, von dem her bin bisher ich davon ausgegangen, dass damit alles ok ist.

Online sieht die Sache anders aus wie ich inzwischen feststellen musste. Die Variable max wird auf -1 gesetzt (warum auch immer), die Variable akt bleibt auf 0 .. und das ändert sich selbst in einer Endlosschleife nicht (warum wo doch das Bild lädt?). Da 0 > -1 wird die Warteschleife also übersprungen.

Die Frage lautet daher: warum werden die Vars offline korrekt gesetzt (sonst würden sie am Ende ja nicht stimmen), online aber nicht? Die Bilder als solches werden auch online sauber geladen, eine falsche Pfadangabe kann also nicht die Ursache sein - weder bei der Datei noch beim Container.

Nun bin ich zwar einen Schritt weiter, aber .. *seufz*

Fällt Dir noch was dazu ein?

Grüßle
Tom
Raven ist offline   Mit Zitat antworten
Alt 26-09-2005, 10:22   #4 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
tracen bringt auch offline was, kannst ja die Downloadgeschwindigkeit simulieren lassen.

hab alles mal in ein oEf gepackt (mag diese Codeverteilung über viele Frames nicht):
ActionScript:
  1. // Film anhalten
  2. stop();
  3. // Zähler initiieren
  4. i = 1;
  5. weiterLaden = true;
  6. this.onEnterFrame = function (){
  7.  if (weiterLaden) {
  8.   weiterLaden = false;
  9.   // Containernamen bestimmen
  10.   this.ziel_1 = "th_c_"+i;
  11.   this.ziel_2 = "th_c_"+(i+1);
  12.   // Pfad zum zu ladenden jpg bestimmen
  13.   this.name_1 = path + i +"k.jpg";
  14.   this.name_2 = path + (i+1)+"k.jpg";
  15.   // jpg in den Container laden
  16.   loadMovie(this.name_1, this.ziel_1);
  17.   loadMovie(this.name_2, this.ziel_2);
  18.  }
  19.  // Gesamtgröße der Thumbs ermitteln
  20.  this.max_1 = this.ziel_1.getBytesTotal();
  21.  this.max_2 = this.ziel_2.getBytesTotal();
  22.  // Aktuellen Ladestand ermitteln
  23.  akt_1 = this.ziel_1.getBytesLoaded();
  24.  akt_2 = this.ziel_2.getBytesLoaded();
  25.  // Wenn beide fertig, dann weiter
  26.  if (this.akt_1 > this.max_1 && this.akt_2 > this.max_2) {
  27.   weiterLaden = true;
  28.   // Zähler hochsetzen
  29.   i += 2;
  30.   // wenn alle Thumbs geladen, dann weiter im Film
  31.   if (i>10) {
  32.    delete this.onEnterFrame;
  33.    gotoAndPlay("daWoDerFilmWeiterGehenSoll");
  34.   }
  35.  }
  36. }
Code ist ungetestet, sollte aber vom Prinzip her funktionieren.
__________________
Grüße,
solo

Die Antwort auf fast alle Fragen gibt es hier: AS-Referenz
Weitere Fehlerquellen sind:
Flasche Pfadangeben oder falsch versorgte Variablen. Beides kann man gut hiermit überprüfen.
Und den Debugger gibts ja auch noch :)
soloFlash ist offline   Mit Zitat antworten
Alt 26-09-2005, 10:38   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 315
Bin auch kein Fan von Codeverteilung, aber bisher hatte ich mit verteiltem Code einfach weniger Probleme. Danke für Dein oEF, werde das nachher in Ruhe testen.

Nur eine Frage noch: wie kriege ich Flash dazu offline auch extern geladene Objekte langsam zu laden? Den Hauptfilm, kein Problem via "Streaming anzeigen", aber die externen jpgs? Sorry falls das nur eine RTFM-Frage ist, aber ...

Danke schon mal!!

Grüßle
Tom
Raven ist offline   Mit Zitat antworten
Alt 26-09-2005, 10:51   #6 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
hmm ... im normalfall läd er bei "Download Simulieren" auch externe sachen wie .jpg mit der entprechenden geschwindikeit.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 26-09-2005, 11:07   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 315
Zitat:
Zitat von readme.txt
hmm ... im normalfall läd er bei "Download Simulieren" auch externe sachen wie .jpg mit der entprechenden geschwindikeit.
Wo hast Du die Option "Download Simulieren"? Ich habe hier unter Ansicht "Streaming anzeigen" und "Streaming-Grafik" .. beides ist aktiviert (Flash MX). Der Film streamt, jpgs nicht. Geht das vielleicht erst mit MX 2004?
Raven ist offline   Mit Zitat antworten
Alt 26-09-2005, 11:19   #8 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
oh, mea culpa ... ich hab MX2004 ... ich bin nicht sicher ob die funktionen bei MX und MX2004 gleich sind.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 26-09-2005, 16:49   #9 (permalink)
ActionScriptler
 
Benutzerbild von .:morpher:.
 
Registriert seit: Jun 2002
Ort: auheim
Beiträge: 1.654
das streamen von externen sachen offline zu simulieren geht erst ab mx2004
__________________
CU @ MY SITE

FOLLOW ME ON TWITTER
.:morpher:. ist offline   Mit Zitat antworten
Alt 26-09-2005, 17:07   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 315
Tja ... das wär dann fast schon ein Grund fürs Update, aber das gibt das Konto derzeit nicht her.

@Solo: habe Dein Script mal eingebunden. Nach einigem hin und her hab ich mich zwar zurecht gefunden und es zum Laufen gebracht (mein Fehler, nicht Deiner) .. aber das Ergebnis ist leider praktisch das gleiche wie bei der verteilten Variante. Ob das nun daran liegt, dass ich Dein Skript zu sehr verbeult habe oder eine andere Ursache hat .. tja ... keine Ahnung.

Falls doch noch jemand ne Idee hat, immer her damit.

Dank Euch für die Mühen!!

Grüßle
Tom
Raven ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele