| |||||||
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) |
| Prospektleser Registriert seit: Jul 2004 Ort: Altmünster
Beiträge: 31
|
Hallo Leute! Habe die Suche jetzt schon genützt, aber nichts passendes gefunden, also poste ich meine Frage. Ich lade eine externe swf in den Level 1, wenn das stimmt, und wie kann ich jetzt im Preloader ermitteln, wieviel schon geladen ist und wieviel zu laden ist. Code:
//--- Aktionen für die Button_MCs um externe Daten
//--- in den Ziel-MC "ladeziel" zu laden ---------
gleichstrom.onPress = function() {
// Ladebefehl
loadMovieNum("Gleichstromkreis.swf",1);
// Aufruf der Funktion für die Preloaderanzeige
ladestatus();
};
wechselstrom.onPress = function() {
loadMovieNum("Wechselstrom.swf",1);
ladestatus();
};
drehfeld.onPress = function() {
loadMovieNum("Drehfeld.swf",1);
laden=3;
ladestatus();
};
kontakt.onPress = function() {
loadMovieNum("Kontakt.swf",1);
ladestatus();
};
//--- Ladeanzeige unsichtbar machen ---------------
loader._visible = false;
//Funktionsdefinition
ladestatus=function()
{
// Einen onEnterFrame-Event erstellen, so dass nun
// der Ladezustand kontinuierlich abgefragt und
// angezeigt wird
loader.onEnterFrame = function()
{
_level1.getBytesLoaded=geladen;
trace(geladen);
_level1.getBytesTotal=zuladen;
trace(zuladen)
// Sicherheitsabfrage, da ein leerer MC so ungefähr
// 4 bis 5 Bytes hat und zu Verfälschungen führen könnte
if (geladen>=10)
{
// Ladeanzeige sichtbar machen
loader._visible = true;
// Berechnung der bereits geladenen Prozent
prozent = Math.round(geladen/zuladen*100);
// Ausgabe im dynamischen Textfeld "prozentanzeige"
this.prozentanzeige.text = prozent+" Prozent geladen";
// Ausgabe im dynamischen Textfeld "bytanzeige" geladene zu gesamtbytes
this.byteanzeige.text = Math.round(geladen/1024)+" Kb/"+Math.round(zuladen/1024)+" Kb";
// Skalierung des Balkens anhand der Prozentzahl
this.balken._xscale = prozent;
//Prozentanzeige und byteanzeige wird somit um die Prozent verschoben
this.prozentanzeige._x=prozent;
this.byteanzeige._x=prozent;
// Wenn komplett geladen
if (prozent>=100)
{
// den EnterFrame-Event löschen um Performance zu sparen
delete this.onEnterFrame;
// die Ladeanzeige wieder unsichtbar machen
this._visible = false;
}
}
};
} Wie kann ich das Problem lösen? Weiß jemand einen Tipp. Danke für alle Antworten |
| | |
| | #2 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
Super, ich Volltrottel habe gerade während des Schreibens den Browser zugemacht, deswegen das Ganze nochmal in Kurzform: Im zu ladenden Film im ersten Frame: _level0.ladesoll = this.getBytesLoaded(); Im Film, der lädt: ladesoll = 0; if (ladesoll != 0) { // lade film } «ladesoll» wird gleich 0 vordefiniert. Sobald der Wert nicht mehr gleich 0 ist, wird content in level1 geladen. «ladesoll» gibt dann den Wert der zu ladenden Bytes an. gruß, gaspode |
| | |
| | #3 (permalink) |
| Gast
Beiträge: n/a
|
Wieso nutzt du eigentlich Level 1? Du hast in Level 0 mehrere Millionen Tiefenebenen, auf die du deine MCs legen kannst. Die müssten doch eigentlich reichen, oder? Davon mal abgesehen solltest du dein Laderscript vom restlichen Programm trennen, d.h. den Lader in eine Start-swf packen und den Rest in eine eigene swf und dann von der Start-swf mit loadMovie nachladen. Das Problem ist sonst, dass du von deinem Lader evtl. kaum etwas zu sehen bekommst. Flash lädt noch vor Frame 1 alle Objekte der Bibliothek, die nicht auf der Hauptzeitleiste liegen, d.h. bevor in Frame 1 der Lader startet, ist vielleicht schon der größte Teil des Films geladen. Wie das scripttechnisch aussieht, findest du unter "Suchen" mit dem Suchbegriff "Preloader"... |
|
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |