• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-05-2009, 11:42   #1 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
Kann Datenmenge in Bild 1 nicht redzieren (Preloader)

Hallo liebes Forum,

ich probiere es schon seit geraumer Zeit und habe auch die Foren abgegrast: Ich habe vor mein Spiel einen Preloader geschaltet. Das erste Bild hatte ohne jegliche "Optimierung" im ersten Bild ca. 250.000 byte. Dann habe ich rumprobiert...

Derzeitiger Stand ist eine vorgeschaltete Szene mit 5 Bildern. Im 2. Bild steht der übliche Code:
Code:
var bytes_loaded = Math.round(this.getBytesLoaded());
var bytes_total = Math.round(this.getBytesTotal());
var Percent = int((bytes_loaded/bytes_total)*100);
trace("Percent "+Percent+ " "+bytes_loaded+" "+bytes_total);

this.mc_loader.gotoAndStop(Percent);

if (bytes_loaded == bytes_total) {
	delete bytes_loaded;
	delete bytes_total;
	delete Percent;
	this.gotoAndPlay("Start");
}
im Bild darauf:
Code:
this.gotoAndPlay(_currentframe-1);
Das Preloadersymbol (einfaches Rechteck mit Tweenfunktion) liegt in der ersten Ebene, die Skripte in der zweiten, damit das Loader-Symbol zu allererst geladen wird.
In den Veröffentlichungsvoreinstellungen habe ich ich die Klassen in Bild 5 exportieren lassen, die sagenumwobene Einstellung "Ladereihenfolge umkehren" habe ich bei CS4 nicht gefunden.
Zudem habe ich die großen Symbolden und Sounds über Eigenschaften angewiesen, ebenfalls erst in Bild 5 geladen zu werden. Dazu musste ich zum Teil MCs für Actionskript exportieren, die es eigentlich nicht benötigen.
Damit habe ich alles getan, was ich im Netz zur Optimierung gefunden habe. Dennoch werden noch 250.000 byte im ersten Bild geladen und der blöde Preloader wird erst zwischen 60% und 80% angezeigt.
Wie kann ich bestimmen, dann mein Preloader geladen und angezeigt wird; und zwar sofort?

Ein anderer Ansatz ist, einen separaten Film als Preloader zu nutzen. Wie kann ich es realisieren, dass ich den Hauptfilm nicht in den Preloader einlade, sondern der Hauptfilm den Preloader ersetzt?

Vielen Dank schon mal
Seebold
Seebold ist offline   Mit Zitat antworten
Alt 04-05-2009, 13:49   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Wie kann ich es realisieren, dass ich den Hauptfilm nicht in den Preloader einlade, sondern der Hauptfilm den Preloader ersetzt?
PHP-Code:
//leeren MC erstellen
this.createEmptyMovieClip("con",1);

//Lauscher-Objekt erstellen
var mclListener:Object = new Object();

//MovieClipLoader-Instanz erstellen
var mcLoader = new MovieClipLoader();

//Lauscher auf die Instanz setzen
mcLoader.addListener(mclListener);

//Film nachladen
mcLoader.loadClip("mein.swf"this.con);


//während des Ladens bspw. um Ladebalken o.ä. zu aktualisieren
mclListener.onLoadProgress = function(target:MovieClipbytesLoaded:NumberbytesTotal:Number):Void {
    var 
prozent int(bytesLoaded*100/bytesTotal);
   
_root.meineTextfeldinstanz.text ""+prozent+" %"
}

//Film ist geladen und MC wurde befüllt:
mclListener.onLoadInit = function(mc:MovieClip) {
    
trace("fertig, beladen wurde "+mc);
    
//Film wird automatisch abgespielt

  Mit Zitat antworten
Alt 04-05-2009, 14:25   #3 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
Hallo Holger, danke für das Beispiel. Ich habe mich etwas missverstädnlich ausgedrückt: Ich meinte schon einen Preloader als eigenständige Datei. Nur in Deinem Beispiel wird "mein.swf" in einen Container des Preloaders geladen. Der Preloader ist weiterhin als _root vorhanden.
Ich hätte gerne, dass "mein.swf" geöffnet wird und sich der Preloader entläd und weg ist. Als wenn ich bei einer HTML-Seite einen Link klicke. Dann ist auch die alte Seite weg und die neue da.
Gehts sowas nicht? Muss man imm den "Müll" mit sich sich rumschleppen und wird ihn nicht los?
Seebold ist offline   Mit Zitat antworten
Alt 04-05-2009, 18:11   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Ich hätte gerne, dass "mein.swf" geöffnet wird und sich der Preloader entläd und weg ist.
Du kannst ja die Instanz der MovieClipLoader-Klasse löschen. Aber wo ist da der Vorteil? Wenn du eine HTML-Seite verlässt sind auch alle Daten der Seite futsch, der große Vorteil von loadMovie und der MovieClipLoader-Klasse ist doch, dass du deine Seite nicht verlässt und weiterhin deine Daten nutzen kannst.

Und der Preloader ist deshalb extern, weil interne Preloader erst auf Frame 1 gestartet werden können. Bis dahin sind aber schon die verknüpften Objekte der Bibliothek geladen und der Preloader setzt zu spät ein...
  Mit Zitat antworten
Alt 04-05-2009, 18:25   #5 (permalink)
Padawan
 
Benutzerbild von Seebold
 
Registriert seit: Dec 2005
Ort: Hannover
Beiträge: 75
Habs nun so gemacht

Hi Holger,

ich mag es irgendwie abgeschlossene Teile zu haben. Ich habe kein Problem damit, wenn der Preloader dann "weg" ist. Ich habe beim Hineinladen ist die Zeitleiste des vorherigen Films immer ein doofes Gefühl. Z.B. hatte ich in zwei Spielen die gleichen Klassen-Namen verwendet. Als ich dass das Hauptmenü gebaut habe und dann mit dem MovieClipLoader die Spiele geladen habe, hat Flash die Klassendateien des ersten Spiels gleich beim zweiten auch verwendet. Das sind solche Sachen, die mich zu dem Wunsch drängen Vergangenes abzuschließen.

Ich habe den Preloader nun so realisiert, wie Du vorgeschlagen hast -- oder zumindest so ähnl :-) Danke also für die Mühe. Wahrscheinlich muss ich mich damit abfinden, dass das es anders nicht geht.
Seebold ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
download, ladereihenfolge, management, preloader, streaming

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 03:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele