Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-11-2004, 21:58   #1 (permalink)
New User();
 
Registriert seit: Jan 2003
Beiträge: 85
Laden externer .swfs bei langsamer Verbindung funktioniert nicht

Hallo,

ich habe ein großes (Kompatiblitäts)Problem, auf welches ich hoffentlich hier eine Antwort erhoffen kann.


Der Ladevorgang eines Projektes, an dem ich arbeite, ist folgendermaßen strukturiert:
  • zuerst wird eine zentrale Steuerungs .swf namens index.swf geladen. Diese läd im ersten Schlüsselbild eine seperate .swf namens 01.swf in Level 90 (welche einen Preloader enthält).
  • (Diese Preloader Datei zeigt dann den Ladezustand von weiteren, zusammen mit der 01.swf (lvl 90), extern geladenen .swfs an, was aber in diesem Fall keine Rolle spielt).


Jetzt das eigentliche Problem:

Wir betrachten die zentrale index.swf.
Sie läd, wie gesagt, in Schlüsselbild 1 die externe 01.swf (u.a.):
ActionScript:
  1. loadMovieNum("global/preloader/01.swf", 90);

Dann läuft der Film weiter und bekommt in Schlüsselbild 279 folgendes AS:

ActionScript:
  1. // Dies ist die 2. externe (für unser Beispiel uninteressante) .swf
  2. geladen_01 = _level100.getBytesLoaded();
  3. total_01 = _level100.getBytesTotal();
  4.  
  5. // Dies ist die 3. externe (für unser Beispiel uninteressante) .swf
  6. geladen_02 =  _level110.getBytesLoaded();
  7. total_02 = _level110.getBytesTotal();
  8.  
  9. // Hier werden die Gesamtkapazitäten der beiden externen (unwichtigen) .swfs addiert und in Variablen ("geladen" und "total") gelegt.
  10. geladen = geladen_00 + geladen_01 + geladen_02;
  11. total = total_00 + total_01 + total_02;
  12.  
  13. // Jetzt wird überprüft, ob der Preloader, also _01.swf_ komplett geladen wurde, bevor weitergespielt wird.
  14. if (_level90.getBytesLoaded() >= _level90.getBytesTotal()) {
  15.     if (geladen >= total) { // hier wird überprüft, ob die externen (unwichtdigen) .swfs komplett geladen wurden.
  16.         _level90.gotoAndPlay(6);
  17.         this.gotoAndPlay(299);
  18.     } else { // ansonsten wird ein Stück zurückgesprungen.
  19.         this.gotoAndPlay(288);
  20.         _level90.gotoAndStop(5);
  21.     }
  22. }

So, das script ist ja recht einfach gestrickt.

Nun das eigentliche Problem:

Bei sehr langsamen Verbindungen (ich spreche von überlasteten 56K Verbindungen) scheint die bereits geladene Größe oder die totale Größe des 01.swf-Films (also des Level 90)noch nicht ausgelesen zu sein, weil nur eine derart geringe Bandbreite zur Verfügung steht.
Folge: Es wird zwar letztendlich alles im Hintergrund geladen, jedoch nicht abgespielt.


Die Folgen dieses Problems klingen simpel, sind aber schwer zu beheben. Meine Frage ist: Wie?

Geändert von Bossman2K (12-11-2004 um 22:06 Uhr)
Bossman2K ist offline   Mit Zitat antworten
Alt 12-11-2004, 22:21   #2 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Habe mir jetzt nicht deinen langen Text durchgelesen Aber schau dir doch mal diesen Code an... Der hat sich bewährt
Angehängte Dateien
Dateityp: zip extern_loader.zip (5,5 KB, 46x aufgerufen)
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 13-11-2004, 01:31   #3 (permalink)
New User();
 
Registriert seit: Jan 2003
Beiträge: 85
Question

Danke Johanness,

nah das scheint schon ganz gut zu funktionieren.

Ich glaube, dass die hineingeladenen Filme erstmal bis >= 5 Bytes geladen werden müssen, damit ihre volle Größe ausgelesen werden kann. Kann es sein, dass mein Problem daran lag?


Jetzt hab ich allerdings eine weitergehende Frage: Wenn ich nun einen Film in einen leeren MC-Container lade und dieser externe Film 2 Szenen hat, kann ich dann noch zur 2. Szene mit
ActionScript:
  1. _root.container.gotoAndStop("Szene2",1);
springen?

Gruß Frieder
Bossman2K ist offline   Mit Zitat antworten
Alt 13-11-2004, 01:40   #4 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347


oh oh... nicht schon wieder einer mit szenen!
szenen sollte man mit flash nach möglichkeit nicht nutzen.... es gibt andere, auch bessere lösungen! dazu gibts hier im ff reichlich nachzulesen..

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 13-11-2004, 04:57   #5 (permalink)
Taugenix
 
Benutzerbild von ccrider
 
Registriert seit: Jun 2004
Beiträge: 50
yeppe, szenen sind richtige bremsklötze
ccrider ist offline   Mit Zitat antworten
Alt 14-11-2004, 22:22   #6 (permalink)
New User();
 
Registriert seit: Jan 2003
Beiträge: 85
Zitat:
Zitat von johanness
Habe mir jetzt nicht deinen langen Text durchgelesen Aber schau dir doch mal diesen Code an... Der hat sich bewährt
Danke dir, die .fla hat mir neue und letztendlich erfolgreiche Anstöße gegeben!

Gruß Frieder
Bossman2K 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 19:12 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele