| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| New User(); Registriert seit: Jan 2003
Beiträge: 85
|
Hallo, ich habe ein großes Problem, mit dem ich mich jetzt schon _zu_ lange herumplate. Folgendes habe ich vor: Eine zentrale swf (index.swf), die, und jetzt kommt der entscheiende Punkt, zur gleichen Zeit mehrere (>=6) externe .swfs laden soll. Das Problem: Setzt man alle externen swfs gleichzeitig hinein, etwa so: ActionScript:
tritt das zentrale Problem auf: Bis man über _root.dermc.getBytesTotal(); die komplette Größe _aller_ swfs auslesen kann, vergeht, vor allem bei kleinen Bandbreiten (<=56k), eine Menge Zeit. Zudem werden die Filme meistens nicht synchron eingelesen sondern zeitversetzt, was bedeutet, dass der eine FIlm schon zum großen Teil geladen sein kann, während noch nicht einmal die Headerdaten (aus denen man die Größe auslesen kann) des anderen geladen sind. Ich denke es ist ein recht gängiges Prinzip bei größeren Webprojekten, nicht die ganze Seite in eine einzige .swf zu legen sondern das ganze aufzuteilen. Liegen jetzt z.B. die Menüs in einzelnen .swfs, die Buttons in einzelnen .swfs usw, kommen ja einige zusammen. Wie löst ihr das Problem, oder wie strukturiert ihr eure Projekte? Meine Absicht letzenendes ist, für alle (<=6) Filme _einen zentralen_ preloader zu steuern, da es dann einheitlicher für den enduser ausschaut. Über rege Anregungen wäre ich äußerst dankbar. |
| | |
| | #2 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Hi. Gleichzeitig schon mal nicht und auch nicht alle in Level 10. ![]() Na ich denke da gibt es sehr viele Wege, die auch je nach Projekt gewählt werden. Also auf 56K Modem wird bei mir schon mal nix optimiert. DSL 1000 muss einfach mittlerweile Standard sein. Für mich jedenfalls. Einen Preloader würde ich immer vorschalten. Das kann doch nicht schaden. Aber recht hast Du. Bei großen Projekten, würde ich versuchen die Datei nach und nach zu laden, sodass der User nicht vor einer weißen Wand steht.
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
| | #3 (permalink) |
| New User(); Registriert seit: Jan 2003
Beiträge: 85
|
Die level10-Überladung war natürlich Unsinn meinerseits, klar. Erst hatte ich's so, dass ich alle swfs gleichzeitig geladen habe, was aber dazu führte, dass der preloader erst sehr spät gestartet wurde (hatts so programmiert, dass er erst startet, wenn er die totale Größe _aller_ zu ladenden Filme hat). Dann hatte ich's so, dass ich per php-script die Dateigröße aller zu ladenden swfs auslas (und damit schonmal die insgesamt zu ladende Größe zu wissen dachte) und dann in Flash erst die erste swf lud, wenn die fertig war die zweite, wenn die fertig war die dritte. Den prozentualen Status konnte ich ja berechnen, da ich die Gesamtgröße aller Dateien per php ausgelesen hatte. Hier kam nur das Problem, dass es so nicht geht: Die Daten, die Flash letzten Endes läd sind größer als die, die die zu ladenden Dateien auf dem server verbrauchen (bei mir waren die Dateien auf der festplatte etwa 120KB groß, geladen hat er letztlich etwa 190KB). D.H. ich muss jetzt manuell die Größe auslesen lassen, die Flash läd, wenn es alle zu ladenden swfs läd, und diese manuell in die preloader-swf schreiben, damit "er" von Anfang an weiß, wieviel überhaupt geladen werden muss (zum prozentualen Berechnen des Fortschritts). Was ich mich frage ist allerdings, dass diese Vorgehensweise, die ich oben beschrieben habe, mit kleinen Abänderungen vom Prinzip her doch _immer_ zum Einsatz kommt, wenn man die files hintereinander läd, sie aber in _eine_ preloaderanimation stecken möchte. Was mich primär interessiert ist wie man an die Gesamtkapazität der zu ladenden Dateien kommen kann, _bevor_ sie in Flash per _root.mymc.loadMovie("asdfj", 24389); geladen werden und man die Größe mit _root.mymc.getBytesTotal(); auslesen kann. ? |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |