Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-09-2003, 10:43   #1 (permalink)
Derber Flasher
 
Benutzerbild von droptix
 
Registriert seit: Jul 2001
Ort: Chemnitz (Sachsen)
Beiträge: 251
z.B. @bokel: Brauche Hilfe zur loaderClass

Ich hatte letztens nochmal das Thema "Preloading - The Definitive Guide" rausgekramt, weil ich ein echtes Problem mit der loaderClass habe. Leider konnte mir niemand helfen… ich hab jetzt aber meinen ganzen Film darauf ausgerichtet und wollte nochmal nachhaken:

1) Ich habe einen Film mit drei Szenen. Szene 3 enthält den eigentlichen Inhalt.

2) Szene 1 preloaded einen Trailer (externes SWF) und spielt ihn bei '100% geladen' ab. Nach dem Abspielen des Trailers geht's weiter mit Szene 2. Zusätzlich enthält Szene 1 eine skip() Funktion, mit der man den Trailer überspringen kann, wenn man keinen Bock auf 3MB download hat oder der Trailer nicht mag. skip() geht einfach mit 'nextScene()' zu Szene 2. Um eine grafische Prozentanzeige zu haben, gibt es den Film 'preloadBar'.

3) Während man sich den Trailer anschaut, wird '_root' weiter geladen. Szene 2 preloaded aber nochmal den Hauptfilm '_root', denn es könnte ja sein, dass jemand den Trailer mit skip() übersprungen hatte. In diesem Fall ist der Hauptfilm vielleicht noch nicht 100%ig geladen.

Situation 1 - Funzt: Ich lasse den Trailer zu Ende laden (100%). Ich kann ihn jetzt skippen oder durchlaufen lassen » ich gelange zu Szene 2. Der Hauptfilm '_root' wird geladen (erkennbar am Prozentwert in 'preloadBar' in Szene 2) und der Film springt zu Szene 3. Alles funzt.

Situation 2 - Problem: Ich lasse den Trailer nicht erst zu Ende laden - ich drücke also z.B. bei 40% auf skip() - und gelange zu Szene 2, wo der Hauptfilm sicherheitshalber vorgeladen wird. Effekt: 'preloadBar' in Szene 2 zeigt ebenfalls 40% und lädt '_root' nicht weiter. Die Prozentanzeige bleibt stehen und der Loader hat gestoppt. Dadurch komme ich nie zu Szene 3. Ein Bug? Was mache ich falsch?

Direktes Beispiel Kleines Problem hier: Beim externen SWF ist das erste Frame nicht transparent… man sieht die Prozentanzeige nicht. Der Film ist fertig geladen, wenn er anfängt, sich zu bewegen. Klickt man vorher auf den Film (= skip), dann sieht man: Die Prozentanzeige in Szene 2 bleibt stehen. Klickt man erst, wenn der Film abspielt, läuft die Prozentanzeige durch…

AS - Szene 1:
ActionScript:
  1. // Name des zu ladenden Clips
  2. clipName = "clips/trailer.swf";
  3. // Name des Movies
  4. mcName = "trailer";
  5. // leeren MovieClip erzeugen
  6. createEmptyMovieClip(mcName, 1);
  7. eval(mcName)._x = 80;
  8. eval(mcName)._y = 60;
  9. // Ohne diese include-Datei geht gar nichts
  10. #include "com.qlod.LoaderClass.as"
  11. // Wir erzeugen einen neuen Loader
  12. theLoader = new com.qlod.LoaderClass();
  13. // Es sollen mindestes 5 Schritte angezeigt werden,
  14. // damit der Loader nicht gleich wieder verschwindet.
  15. // Wert '1' (Standard) heißt 100% Speed.
  16. theLoader.setMinSteps(5);
  17. // Der Balken bekommt einen Handler zugewiesen,
  18. // der automatisch vom Loader regelmäßig aufgerufen wird
  19. // und als Parameter die geladenen Bytes bekommt.
  20. preloadBar.onLoadProgress = function(loaderObj) {
  21.         this.percent = Math.floor(loaderObj.getPercent());
  22.         // this.kBl = loaderObj.getKBLoaded();
  23.         // this.kBt = loaderObj.getKBTotal();
  24.         // this.downSpeed = Math.floor(loaderObj.getSpeed());
  25. };
  26. // Wir teilen dem Loader mit, dass der Balken an
  27. // Informationen zum Ladevorgang interessiert ist.
  28. // Der Loader fungiert hier als Sender (Broadcaster),
  29. // den Zuhörer (Listener) abonnieren können.
  30. theLoader.addListener(preloadBar);
  31. // Diese Funktion wird aufgerufen, wenn die Datei
  32. // fertig geladen ist
  33. // Sie gibt eine Meldung in das Ausgabefenster aus.
  34. preloadBar.onLoadComplete = function(success, loaderObj) {
  35.         if (success) {
  36.                 trace("Der Film '"+loaderObj.getUrl()+"' wurde erfolgreich in '"+loaderObj.getTarget()+"' geladen.");
  37.                 // Clip starten
  38.                 eval(mcName).play();
  39.         } else {
  40.                 trace("Der Film '"+loaderObj.getUrl()+"' konnte nicht in '"+loaderObj.getTarget()+"' geladen werden.");
  41.         }
  42. };
  43. // Die Funktion onLoadComplete ist auf der aktuellen Timeline
  44. // definiert, deshalb melden wir die aktuelle Timeline als Listener an
  45. theLoader.addListener(this);
  46. // Wir laden die SWF
  47. theLoader.load(mcName, clipName);
  48. // nach dem Abspielen des Clips
  49. _global.skip = function() {
  50.         // Film entladen
  51.         unloadMovie(mcName);
  52.         // zur nächsten Szene
  53.         nextScene();
  54. };
  55. stop();
AS - Szene 2:
ActionScript:
  1. preloadBar.onLoadProgress = function(loaderObj) {
  2.         this.percent = Math.floor(loaderObj.getPercent());
  3.         // this.kBl = loaderObj.getKBLoaded();
  4.         // this.kBt = loaderObj.getKBTotal();
  5.         // this.downSpeed = Math.floor(loaderObj.getSpeed());
  6. };
  7. _root.onLoadComplete = function(success, loaderObj) {
  8.         if (success) {
  9.                 trace("Der Film '"+loaderObj.getUrl()+"' wurde erfolgreich in '"+loaderObj.getTarget()+"' geladen.");
  10.                 // weiter
  11.                 nextScene();
  12.         } else {
  13.                 trace("Der Film '"+loaderObj.getUrl()+"' konnte nicht in '"+loaderObj.getTarget()+"' geladen werden.");
  14.         }
  15. };
  16. theLoader.addListener(this);
  17. theLoader.observe(_root);
__________________
Droptix WebDesign
www.droptix.de

Geändert von droptix (15-09-2003 um 10:48 Uhr)
droptix ist offline   Mit Zitat antworten
Alt 15-09-2003, 15:16   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Im SkipButton musst du anstatt unloadMovie myLoader.removeCurrent() aufrufen.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 16-09-2003, 09:24   #3 (permalink)
Derber Flasher
 
Benutzerbild von droptix
 
Registriert seit: Jul 2001
Ort: Chemnitz (Sachsen)
Beiträge: 251
Smile WOW

Und ich dachte schon, 'ich' käme nie dahinter… DANKE!

P.S. Hoffentlich funzt es… Testing geht erst heut Abend - hui, bin ich gespannt :-)
__________________
Droptix WebDesign
www.droptix.de
droptix ist offline   Mit Zitat antworten
Alt 17-09-2003, 09:29   #4 (permalink)
Derber Flasher
 
Benutzerbild von droptix
 
Registriert seit: Jul 2001
Ort: Chemnitz (Sachsen)
Beiträge: 251
Unhappy leider doch nicht

Och enttäuscht…

Es geht leider nicht. Folgendes passiert: Der Trailer wird geladen und beim Aufrufen der Funktion skip() bewirkt das 'theLoader.removeCurrent()' gar nichst, aber der Film springt zur Szene 2 und vno dort aus weiter zur Szene 3, wo er stoppt. Dabei läuft der Trailer allerdings weiter und liegt über dem Inhalt! Der Trailer verdeckt also alles. Das 'removeCurrent()' bewirkt vielleicht ein 'Leeren' des Loaders, aber der Trailer verschwindet eben nicht von der Bühne…

Ich bin völlig verzweifelt » Hast du noch eine Idee?
__________________
Droptix WebDesign
www.droptix.de
droptix ist offline   Mit Zitat antworten
Alt 17-09-2003, 09:40   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Stimmt, der Film verschwindet nicht dadurch. Dann musst du doch ein unloadMovie einfügen, aber erst nach dem removeCurrent.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 18-09-2003, 09:18   #6 (permalink)
Derber Flasher
 
Benutzerbild von droptix
 
Registriert seit: Jul 2001
Ort: Chemnitz (Sachsen)
Beiträge: 251
funzt jetzt

Danke bokel!

Manchmal sind es die kleinen Dinge, die mich glücklich machen :-)
__________________
Droptix WebDesign
www.droptix.de
droptix 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 14:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele