Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-08-2005, 16:57   #1 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
preload Problem

Hi Flasher,

Ich habe einen Preload gebastelt, wo sich ein Mc von a nach b bewegt, beschleunigt je nach Prozentzuwachs.

Script sieht so aus:
ActionScript:
  1. _root.onEnterFrame = function() {
  2.     a = getBytesTotal();
  3.     b = getBytesLoaded();
  4.     percent = Math.round(b/a*100);
  5.     loaded = "Seite zu "+percent+"% geladen";
  6.     this.moped_mc._x = this.moped_mc._x -percent/40;
  7.     if (this.moped_mc._x <= 310) {
  8.         this.moped_mc._x = 310; //hier bleibt er stehen
  9. }
  10.     if (b>=a) {
  11.         gotoAndStop(5);
  12.         delete this.onEnterFrame;
  13.     }
  14. };

Jetzt meine Frage:

Ich testete das mit 56k Leitung (simuliert in Flash). Wenn ich das jetzt aber mit DSL teste, dann fährt der Mc gar nicht mehr bis zu _x = 310, da ja dsl schneller läd als ein Modem.
Dennoch war meine Überlegung, das ja bei einem geringeren Speed der Leitung ja die Prozent auch langsamer berechnet werden. Bei einer schnelleren Leitung ja dann schneller. Daraus folgt, das der Mc ja immer bis zu _x =310 fahren müsste egal wie schnell oder langsam die Leitung ist. Macht er aber nicht.

Wo könnte da in der Überlegung ein Fehler sein??? Oder ist dann das Script hier falsch???

Bitte um Hilfe...

Mfg Taui
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)

Geändert von Pan_Tau (15-08-2005 um 17:24 Uhr)
Pan_Tau ist offline   Mit Zitat antworten
Alt 15-08-2005, 17:02   #2 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hi.
bei schnellen leitungen zeigt ein preloader meist garnicht die 100% an, wenn man nicht extra nochmal sagt: if(alles geladen){zeige 100%}.

versuch das mal:
ActionScript:
  1. if (getBytesLoaded()==getBytesTotal()) {
  2.                 this.moped_mc._x = 310;
  3. }

grüße.
smi.
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 15-08-2005, 17:23   #3 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
Hi smirgel, lange net gelesen

Danke schon mal für die schnelle hilfe!

Jetzt fährt der Mc schnell oder langsam je nach Leitung. Aber bei 56 k hällt er nicht mehr bei _x =310.

Habs mal so umgeschrieben:
ActionScript:
  1. _root.onEnterFrame = function() {
  2.     a = getBytesTotal();
  3.     b = getBytesLoaded();
  4.     percent = Math.round(b/a*100);
  5.     loaded = "Seite zu "+percent+"% geladen";
  6.     this.moped_mc._x = this.moped_mc._x -percent/4;
  7.     if (a==b) {
  8.         this.moped_mc._x = 310;
  9. }
  10.     if (b>=a) {
  11.         gotoAndStop(5);
  12.         delete this.onEnterFrame;
  13.     }
  14. };

Vielleicht hab ich auch noch vergessen zu erwähnen, das der MC auf der Bühne bei 408 liegt und sich dann aber nur bis pos 310 bewegen soll und das eben je nach Leitungsschnelligkeit, langsamer oder schneller.

Noch ne Idee? Ich häng das mal an, dann sieht manns besser glaub ich.

Mfg Taui
Angehängte Dateien
Dateityp: zip moped.zip (40,7 KB, 6x aufgerufen)
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)
Pan_Tau ist offline   Mit Zitat antworten
Alt 15-08-2005, 17:36   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!
Wie wäre es denn so?
ActionScript:
  1. stop();
  2. _root.onEnterFrame = function() {
  3.     a = getBytesTotal();
  4.     b = getBytesLoaded();
  5.     percent = Math.round(b/a*100);
  6.     loaded = "Seite zu "+percent+"% geladen";
  7.     if (this.moped_mc._x>310) {
  8.         this.moped_mc._x -= percent/4;
  9.     } else {
  10.         this.moped_mc._x = 310;
  11.     }
  12.     if (b>=a) {
  13.         gotoAndStop(5);
  14.         delete this.onEnterFrame;
  15.     }
  16. };
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-08-2005, 17:48   #5 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
Hi Frager,

So wirds auch nicht das richtige. Funzt ebenfals nicht wie gewünscht.

Noch mal überlegt:

mc steht auf 408. Prozente werden ermittelt und dann zu x des Mc's addiert oder abgezogen, bis dieser auf 310 steht. Is doch eigentlich ne einfache überlegung oder? und je schneller die Prozente errechnet werden, desto schneller müsste sich der Mc doch bewegen?

Normalerweise doch einfach:
ActionScript:
  1. this.moped_mc._x = this.moped_mc._x - percent;

Durch das /40 kann man doch nur noch mal extra das Tempo einstellen. Also doch eigentlich ganz einfach, aber es geht so net

Noch Ideen??? Mir raucht schon der Kopp...

Mfg Taui
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)
Pan_Tau ist offline   Mit Zitat antworten
Alt 15-08-2005, 17:51   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...bei mir tut das Mopped auch genau das, was du da beschreibst.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-08-2005, 17:53   #7 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
was echt???? auch Offline? Spinnt da mein Flash oder wie??

Das versteh ich nich....

Mfg Taui
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)
Pan_Tau ist offline   Mit Zitat antworten
Alt 15-08-2005, 17:57   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Kann ich dir nicht sagen. Hab's mit verschiedenen Übertragungsraten simuliert - klappt!
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-08-2005, 18:03   #9 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
Ok dann schon mal danke!!

Nur noch kurz ne Frage:

Wenn du 56k anwendest wann bleibt der denn da stehen?? Bei mir wenn ca 30-40% geladen sind. Dann iss er schon bei 310. Aber der läd da doch noch. Oder hab ich vielleicht nen super Denkfehler im Hirn?? Beim DSL Test klappts.

mfg Taui
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)
Pan_Tau ist offline   Mit Zitat antworten
Alt 15-08-2005, 18:09   #10 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Moment mal... Willst du, dass immer 100% erreicht sind, wenn das Moped auf 310 steht?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-08-2005, 18:11   #11 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
Ja genau. wenn dat ding da auf 100% is soll 310 erreicht haben.
Hab ich mich da so S**** ausgedrückt?? Dann entschuldige bitte.

Mfg Taui
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)
Pan_Tau ist offline   Mit Zitat antworten
Alt 15-08-2005, 18:20   #12 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Aha:
ActionScript:
  1. stop();
  2. startX = this.moped_mc._x;
  3. trace(startX);
  4. _root.onEnterFrame = function() {
  5.     a = getBytesTotal();
  6.     b = getBytesLoaded();
  7.     percent = Math.round(b/a*100);
  8.     loaded = "Seite zu "+percent+"% geladen";
  9.     this.moped_mc._x = startX+((310-startX)/100)*percent
  10.     if (b>=a) {
  11.         gotoAndStop(5);
  12.         delete this.onEnterFrame;
  13.     }
  14. };
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-08-2005, 18:33   #13 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
WOW total Geil. Genauso meinte ich es. Vielen vielen Dank

Auch wenn ich die Rechnung nicht verstehe.

ActionScript:
  1. this.moped_mc._x = startX+((310-startX)/100)*percent

310-startx sind doch dann -98 (startpos is ja 408), dann das ganze /100 =-0,98 und jetzt mal die Prozente (z.B 50) wären dann - 49. Bei 60 dann -58,8 usw. aber das sind doch minus Werte. Ohh mann Mathe is ein schwehres Fach.

Kannst mir das, wenns dir nix ausmacht kurz erläutern warums so ne komplizierte Rechnung is?? Und wie ich das verstehen muss? ich check die Formel nähmlich nicht.

Mfg Taui

Ps: wenn du keine Zeit/Lust hast, danke ich dir trotzdem für die super Hilfe.
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)
Pan_Tau ist offline   Mit Zitat antworten
Alt 15-08-2005, 18:51   #14 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Vielleicht trägt das ja zum Verständnis bei:
ActionScript:
  1. stop();
  2. load_func = function () {
  3.     start_x=288, end_x=78;
  4.     // hier die differenz berechnen - negativ oder positiv
  5.     dif_x = start_x-end_x;
  6.     trace("dif_x = "+dif_x);
  7.     // dann den teil berechnen, der pro prozent vom startwert abgezogen wird
  8.     factor_x = dif_x/100;
  9.     trace("factor_x = "+factor_x);
  10.     // moped auf startwert stellen
  11.     this.moped_mc._x = start_x;
  12.     _root.onEnterFrame = function() {
  13.         a = getBytesTotal();
  14.         b = getBytesLoaded();
  15.         percent = Math.round(b/a*100);
  16.         loaded = "Seite zu "+percent+"% geladen";
  17.         // hier wird vom startwert, prozent mal faktor abgezogen
  18.         this.moped_mc._x = start_x-percent*factor_x;
  19.         if (b>=a) {
  20.             this.moped_mc._x = end_x;
  21.             gotoAndStop(5);
  22.             trace("delete");
  23.             delete this.onEnterFrame;
  24.         }
  25.     };
  26. };
  27. load_func();
__________________
Gruß, Jey!
jeypack ist offline   Mit Zitat antworten
Alt 15-08-2005, 18:55   #15 (permalink)
Trottel in As
 
Benutzerbild von Pan_Tau
 
Registriert seit: Jul 2002
Ort: Erfurt
Beiträge: 598
Dat sieht ja noch komplizierter aus als beim Frager .

Danke trotzdem. ich werds wohl nie verstehen. Is ja auch nicht so schlimm. Hauptsache es funzt dank eurer Hilfe. Wenn ich das irgendwann mal wieder nutzen werde (bei ner anderen Page), dann werrd ich da bestimmt wieder vor nem offenen Scheunentor sitzen und nich rein kommen.

Als dann Danke noch mal und bis zur nächsten Frage

Mfg Taui
__________________
Seit dummheit quietscht, renn ich nur noch mit der Ölkanne rum! :-)
Pan_Tau 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 02:20 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele