Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-05-2005, 16:37   #1 (permalink)
Neuer User
 
Benutzerbild von redbolt
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 118
Fehler in Preloader

Hallo Leute,
ich habe einen Preloader gemacht.
Siehe Code

ActionScript:
  1. function set_preloader(){
  2.     this.attachMovie("preloader1","preloader",10);
  3.     this.preloader._x =255;
  4.     this.preloader._y =293;
  5.     this.preloader.t_prozent = "0 %";
  6.     this.preloader.m_prebalken._xscale = 0;
  7.     _root.m_laden._visible = false;
  8.        
  9.         this.preloader.onEnterFrame = function(){
  10.             _root.attachMovie("blase","blasepre"+_root.blasennummer,_root.blasennummer);
  11.             _root["blasepre"+_root.blasennummer]._x = _root._x + _root.preloader._x+ this.m_prebalken._x + this.m_prebalken._width * (this.m_prebalken._xscale/100)+20;
  12.             _root["blasepre"+_root.blasennummer]._y = _root._y + _root.preloader._y+ this.m_prebalken._y -10; //+ m_prebalken._y-10;
  13.             _root.blasennummer++;
  14.             this.t_prozent = int((_root.m_laden.getBytesLoaded()/_root.m_laden.getBytesTotal())*100)+" %";
  15.             this.m_prebalken._xscale = _root.m_laden.getBytesLoaded()/_root.m_laden.getBytesTotal()*100;
  16.    
  17.             if(_root.m_laden.getBytesLoaded()>= _root.m_laden.getBytesTotal()) {
  18.             //Funtion zum Preloader löschen aufrufen
  19.             _root.m_laden._visible = true;
  20.             _root.kill_preloader();
  21.             }
  22.         }
  23. }
  24. function kill_preloader(){
  25. unloadMovie("preloader");   
  26. }

Ich lade einen Movie in _root.m_laden und danach wird die Funktion set_preloader() aufgerufen. Der Preloader erscheint zwar aber nur kurz. Ich habe auch schon andere Möglichkeiten versucht, immer das gleiche.

Ich glaube die If_schleife, welche dir Bytes vergeleicht läuft durch bevor der Movie geladen wird und damit erhält die Funktion getbytes == loadbytes und führt den Code in der Anweisung aus und löscht damit wieder den Preloader.
was kann ich dagegen tun oder ist es ein anderes Problem?

ahhhh, verzweiflung
redbolt ist offline   Mit Zitat antworten
Alt 24-05-2005, 16:44   #2 (permalink)
Neuer User
 
Benutzerbild von redbolt
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 118
Selbst geholfen

Ich glaub ich hab meinen Fehler selbst gefunden.
Ich muss anstelle von >= negiert mit != arbeiten, denn wenn der zuvor geladene mc größer ist müsste er logischerweise gelich die Schleife durchlaufen und den preloader wegkicken

probiers mal...

mh..
redbolt ist offline   Mit Zitat antworten
Alt 24-05-2005, 16:52   #3 (permalink)
Neuer User
 
Benutzerbild von redbolt
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 118
das war der fehler wohl doch nicht.

ich tick gleich aus.!!!!!
redbolt ist offline   Mit Zitat antworten
Alt 24-05-2005, 17:05   #4 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
hi,

checkst du das lokal oder online?

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 24-05-2005, 17:37   #5 (permalink)
Neuer User
 
Benutzerbild von redbolt
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 118
beides teste ich.
manchmal ist es sogar vom browser abhängig.

ich hab den code nochmal geändert. so funktioniert es nur mit IE, nicht mit Firefox

ActionScript:
  1. function set_preloader(ladefilm){
  2.     _root.m_laden.unloadMovie();
  3.     _root.m_laden.loadMovie(ladefilm);
  4.     this.attachMovie("preloader1","preloader",10);
  5.     this.preloader._x =255;
  6.     this.preloader._y =293;
  7.     this.preloader.t_prozent = "0 %";
  8.     this.preloader.m_prebalken._xscale = 0;
  9.     _root.m_laden._visible = false;
  10.     this.preloader.geladen = _root.m_laden.getBytesLoaded()
  11.     this.preloader.zuladen = _root.m_laden.getBytesTotal()
  12.        
  13.         this.preloader.onEnterFrame = function(){
  14.                
  15.                 if(this.zuladen >= this.geladen) {
  16.                     _root.attachMovie("blase","blasepre"+_root.blasennummer,_root.blasennummer);
  17.                     _root["blasepre"+_root.blasennummer]._x = _root._x + _root.preloader._x+ this.m_prebalken._x + this.m_prebalken._width * (this.m_prebalken._xscale/100)+20;
  18.                     _root["blasepre"+_root.blasennummer]._y = _root._y + _root.preloader._y+ this.m_prebalken._y -10; //+ m_prebalken._y-10;
  19.                     _root.blasennummer++;
  20.                     this.t_prozent = int((_root.m_laden.getBytesLoaded()/_root.m_laden.getBytesTotal())*100)+" %";
  21.                     this.m_prebalken._xscale = _root.m_laden.getBytesLoaded()/_root.m_laden.getBytesTotal()*100;
  22.                 }
  23.                 else{
  24.                     _root.m_laden._visible = true;
  25.                     _root.kill_preloader();
  26.                 }
  27.            
  28.        
  29.         }
  30. }
  31. function kill_preloader(){
  32. unloadMovie("preloader");   
  33. }
redbolt ist offline   Mit Zitat antworten
Alt 24-05-2005, 17:45   #6 (permalink)
Neuer User
 
Benutzerbild von redbolt
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 118
habs hinbekommen, lag wohl an der ladeverzögerung.
habe den code noch ergänzt und zwar lasse ich die Abfrgae getbytes und loadbytes erst zu wenn mindestens 10 bytes geladen sind.

trotzdem danke
bis denn...
redbolt ist offline   Mit Zitat antworten
Alt 24-05-2005, 17:48   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Wie der funktioniert? Kann doch gar nicht sein. Du fragst ja nur einmal ab, wieviel geladen ist

ActionScript:
  1. function set_preloader(ladefilm) {
  2.     _root.m_laden.unloadMovie();
  3.     _root.m_laden.loadMovie(ladefilm);
  4.     this.attachMovie("preloader1", "preloader", 10);
  5.     this.preloader._x = 255;
  6.     this.preloader._y = 293;
  7.     this.preloader.t_prozent = "0 %";
  8.     this.preloader.m_prebalken._xscale = 0;
  9.     _root.m_laden._visible = false;
  10.     this.preloader.onEnterFrame = function() {
  11.         this.geladen = _root.m_laden.getBytesLoaded();
  12.         this.zuladen = _root.m_laden.getBytesTotal();
  13.         if (this.zuladen>=this.geladen) {
  14.             _root.attachMovie("blase", "blasepre"+_root.blasennummer, _root.blasennummer);
  15.             _root["blasepre"+_root.blasennummer]._x = _root._x+_root.preloader._x+this.m_prebalken._x+this.m_prebalken._width*(this.m_prebalken._xscale/100)+20;
  16.             _root["blasepre"+_root.blasennummer]._y = _root._y+_root.preloader._y+this.m_prebalken._y-10;
  17.             //+ m_prebalken._y-10;
  18.             _root.blasennummer++;
  19.             this.t_prozent = int((_root.m_laden.getBytesLoaded()/_root.m_laden.getBytesTotal())*100)+" %";
  20.             this.m_prebalken._xscale = _root.m_laden.getBytesLoaded()/_root.m_laden.getBytesTotal()*100;
  21.         } else {
  22.             _root.m_laden._visible = true;
  23.             _root.kill_preloader();
  24.         }
  25.     };
  26. }
  27. function kill_preloader() {
  28.     unloadMovie("preloader");
  29. }

edit: ...und NUR das mit "> 10" hat's gebracht???
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (24-05-2005 um 17:51 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 24-05-2005, 17:50   #8 (permalink)
Neuer User
 
Benutzerbild von redbolt
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 118
jou der geht.
die hauptfunktion dient ja nur einen preloader-mc auf die bühne zu bringen nachdem er geladen wurde wir ihm eine onEnterFrame-Funktion zugewiesen, alles was da drinne steht wird so oft ausgeführt soviele bilder flash pro sekunde abspielt (normal24 also 24 mal pro sec).

probiers.. geht.

alla bis denne
redbolt ist offline   Mit Zitat antworten
Alt 24-05-2005, 17:56   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Jaja, wie ein oEF funktioniert weiß ich. Aber diese zwei Zeilen
ActionScript:
  1. this.geladen = _root.m_laden.getBytesLoaded();
  2. this.zuladen = _root.m_laden.getBytesTotal();
waren in deiner Version nicht mit in der Schleife... Mich wundert's, dass es klappt - aber egal.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 11:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele