Flashhilfe.de - Flash Community

preloader lädt nicht sofort [Flash CS3]

 


AntwortenRegistrieren Seite1 2  

stix#1
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

28.04.2009, 11:24

Hi.

Ich habe einkleines Problem. Ich habe einen preloader, der im 1. frame der Hauptzeitleiste liegt mit einem "stop".
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
onClipEvent (enterFrame) {
   loading = _parent.getBytesLoaded();
   total = _parent.getBytesTotal();
   if (percent == undefined) percent = 0;
   percent -= (percent-((loading/total)*100))*.25;
   per = int(percent);
   percentage = per+"%";
   loadBar._width = per;
   if (percent>99) {
      _parent.gotoAndStop(2);
   }
}


allerdings braucht der ewig und wenn er dann kommt, geht es ganz schnell, also nicht das, was er eigentlich machen sollte.

Hat jemand einen Tip, was da falsch läuft?
Ich bin nicht so der Programmierer und sehe da nicht durch...

Danke und Grüße
Werbung
Beiträge: 0
Registriert: Feb 2016


Sleepingbeast#2
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

28.04.2009, 12:23

Das liegt daran, dass zum einen natürlich der Preloader selbst (mit allen Formen, Schriften, Scripten usw.) geladen werden muss, zum anderen eventuell eingebettete Klassen auch VOR dem Preloader geladen werden. Du musst also zum einen den Preloader so "schlank" wie möglich halten zum anderen bei den Einstellungen angeben, dass die benötigten Klassen erst im 2. Schlüssenbild (also NACH dem Preloader) geladen werden.
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
stix#3
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 12:31

Also der Loader besteht im Moment aus dem dyn. Text, der die % angibt, einem Balken 400px x 1px groß und dem skript, das ich gepostet habe. Das dürfte ich bei meiner Leitung gar nicht sehen. Der Film ist im Ganzen 1,2 Mb groß, und da warte ich schon ein paar Sekunden.

Wo gibt man denn an, dass die Klassen erst nach dem 2. Frame geladen werden sollen?
Den Loader habe ich aus dem Netz, also von diesen Dingen habe ich sehr wenig Ahnung. Kannst du helfen?

Danke
Sleepingbeast#4
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

28.04.2009, 12:34

das gibst du bei den Veröffentlichungseinstellungen -> Reiter Flash -> Button Einstellungen an. Da öffnet sich (sicher abhängig von der Flash-Version) ein Popup, wo du neben Klassen exportieren in Bild eben statt der 1 eine 2 eingibst.
Das sollte schon ein bisschen Geschwindigkeitsgewinn bringen.
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
Werbung
Beiträge: 0
Registriert: Feb 2016


deflashoman#5
Benutzerbild von deflashoman
Beiträge: 140
Registriert: Jul 2007

28.04.2009, 12:38

Hi,

Ich hab hier eins was dein Problem beheben könnte. Dieses Problem hatte ich auch, da taucht der Preloader mitten 30% / 40% auf ??
Wie schon erwähnt liegt das echt an der Größe des Preloader, das würde dann ja bedeuten das du einen Preloader für Preloader basteln
muss?? Auf jedenfall bist du besser drann, wenn du das grafische mit ActionScript schreibst, so sparst du echt an Performance & Größe!

Bei mir geht es auf jeden Fall, kannst dir mal anschauen und ggf. umbauen geht ganz easy... gruß, dfm.
Geändert von deflashoman am 28.04.09 um 12:39 Uhr
stix#6
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 12:48

ein guter Tip, das kannte ich noch nicht.
Leider ändert sich nichts...

Wie gesagt, der Loader ist datenmäßig absolut minimal...
stix#7
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 12:49

Bei dem Skript ist es eigentlich dasselbe... irgendwas scheint schief zu laufen bei mir...

Ihr könnt ja mal schauen unter:
http://cirilbt.ch/zwei.html
Geändert von stix am 28.04.09 um 12:50 Uhr
Sleepingbeast#8
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

28.04.2009, 12:55

Es geht wahrscheinlich schon mit der Schrift los. Sieht aus, als ob du die Schriftart in deinem dynamischen Textfeld eingebettet hast. Wenn du da eventuell auch noch ALLE Zeichen eingebettet hast (obwohl du ja lediglich die Ziffern und das %-Zeichen brauchst) dauerts schon nen Moment länger beim Laden. Das hat zumindest bei mir immer schon nen recht großen Erfolg gebracht (vorher hats bei 70% angefangen, wenn nur Ziffern und % eingebettet waren bei 10%). Am besten ist es natürlich noch, wenn du garkeine Schrift einbettest. Aber das wäre bei dir sicher nicht die beste Lösung, da der Preloader ja irgendwie schon dem CD der Seite angepasst sein soll.
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
stix#9
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 12:58

Ich habe mal die Arial genommen und "Geräteschriftarten verwenden" eingestellt... keine Änderung.
Ist doch verflixt!
Sleepingbeast#10
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

28.04.2009, 13:17

Ich zeig dir mal das Script, was ich immer für den Preloader verwende. Ist deinem zwar recht ähnlich, aber vielleicht ändert das schon was.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
stop();

this.onEnterFrame = function() {
   geladen = this.getBytesLoaded();
   gesamt  = this.getBytesTotal();
   prozent = geladen / gesamt * 100;
   ladebalken._width = prozent;
   ladetext.text = Math.floor(prozent) + "%";
   if(prozent > 99) {
      gotoAndStop(2);
   }
}


Muss natürlich noch entsprechend deinen Vorgaben angepasst werden.
Dabei fällt mir gerade auf, wie übergibst du denn eigentlich den String (also deinen Prozent-Wert) an das Textfeld?
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
stix#11
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 13:27

wie ich da was übergebe, habe ich keine Ahnung. ich habe das Skript einfach kopiert.

Ich habe aber mal was anderes versucht:
Ich habe die ganzen mc´s, die in den Film geladen werden sollen in einen Frame außerhalb meines Films gelegt und jeweils unter Eigenschaften "in erstes Bild exportieren" abgewählt. Diese Dinge lädt Flash wohl ungeachtet eines preloaders erst mal ein.

Jetzt startet der loader bei ca. 10%, aber er lädt die mc´s auch nicht mehr...

Ich versuche mal deinen loader, mal sehen...
stix#12
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 13:30

wo kommt das Skript denn hin? Auf den 1. Frame?
Sleepingbeast#13
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

28.04.2009, 13:38

jup, genau...ins erste schlüsselbild. Und da darf sonst NICHTS drin sein.....weil eben alles andere erst NACH dem Preloader geladen werden soll

... bis auf den Ladebalken und das Textfeld natürlich!
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
Geändert von Sleepingbeast am 28.04.09 um 13:44 Uhr
stix#14
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 13:46

das hab ich noch nicht geschnallt, aber ich habe das (etwas unorthodox villeicht) anders lösen können.
Alle Komponenten etc. außerhalb des Films plaziert und nicht ins 1. Bild exportieren lassen, und das Ganze auf den 2. Frame.
Jetzt geht es schon besser...

Dein preloader sieht recht einfach und schlank aus, aber er geht nicht. Muss ich da noch einen mc "Ladenbalken" bauen oder so was?

Danke auf jeden Fall für deine Mühe!
Sleepingbeast#15
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

28.04.2009, 13:55

Ja genau. Du brauchst im ersten Schlüsselbild noch einen MovieClip mit dem Instanznamen "ladebalken" und ein dynamisches Textfeld mit dem Instanznamen "ladetext". Ich erlär' dir mal das Script, es ist wirklich sehr einfach. Und genau das soll es ja auch sein:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
stop(); //hält den Abspielkopf an

this.onEnterFrame = function() { //diese Funktion wird bei jedem EnterFrame-Event (also bei einer Framerate von 24 eben 24mal pro Sekunde) aufgerufen
  geladen = this.getBytesLoaded(); //speichert die Größe der bereits geladenen Daten in der Variablen "geladen"
  gesamt  = this.getBytesTotal(); //speichert die Gesamtgröße der zu ladenden  Daten in der Variablen "gesamt"
  prozent = geladen / gesamt * 100; //Erreichnet mit dem "Dreisatz" den Prozentwert
  ladebalken._width = prozent; //setzt die Breite des MovieClips "ladebalken" auf den eben errechneten Wert (hier musst du eventuell noch mit einem Faktor multiplizieren, um deine tatsächliche Endgröße zu erhalten)
  ladetext.text = Math.floor(prozent) + "%"; // füllt das dynamische Textfeld "ladetext" mit dem errechneten (und gerundeten) Prozentwert gefolgt von einem %-Zeichen
  if(prozent > 99) { //wenn der Prozentwert dann irgendwann mal größer als 99 ist...
      gotoAndStop(2); //...dann verschiebe den Abspielkopf ins zweite Schlüsselbild (wo dann der eigentliche Inhalt angezeigt wird)
  }
}
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
stix#16
Benutzerbild von stix
Beiträge: 40
Registriert: Mar 2008

Themenautor/in

28.04.2009, 14:09

yepp, läuft super. Den werde ich mir mal merken.

Und wie gesagt, das Problem mit der Ladezeit habe ich soweit gelöst.
Jetzt ruckeln die mov´s zwar, aber die können eh etwas kleiner.

Danke dir und Grüße!

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de