Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-09-2003, 13:00   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
Question Prototype und Skalierung Probs…

Hallo ich habe hier zwei scripts eines zum öffen das Andere zum schließen… Jedoch wird der zu skalierende Movieclip am über 100% seiner größe Skaliert. Anfänger Fehler??


ActionScript:
  1. //______Wabbern_AUF_______________________________
  2. MovieClip.prototype.initWabbAuf = function(start_scale, end_scale, swing) {
  3.     this.s_s=start_scale, this.e_s=end_scale, this.sw=swing;
  4.     this._xscale = this._yscale=1;
  5. };
  6. MovieClip.prototype.WabberAuf = function() {
  7.     u = 0;
  8.     this.onEnterFrame = function() {
  9.         // Normale Bewegung
  10.         if (this._xscale<this.e_s) {
  11.             this._xscale += 30;
  12.             this._yscale += 30;
  13.         } else {
  14.             u += 0.3;
  15.             // Wabber
  16.             this._xscale += Math.sin(u)*this.sw/u;
  17.             this._yscale += Math.sin(u)*this.sw/u;
  18.         }
  19.     };
  20. };
  21. //_______Wabbern_ZU________________________________
  22. MovieClip.prototype.initWabbZu = function(start_scale, end_scale, swing) {
  23.     this.s_s=start_scale, this.e_s=end_scale, this.sw=swing;
  24.     this._xscale = this._yscale=100;
  25. };
  26. MovieClip.prototype.WabberZu = function() {
  27.     u = 0;
  28.     this.onEnterFrame = function() {
  29.         // Normale Bewegung
  30.         if (this._xscale>this.e_s) {
  31.             this._xscale -= 20;
  32.             this._yscale -= 20;
  33.         }
  34.         /*else {
  35.                     u += 0.2;
  36.                     // Wabber
  37.                     this._xscale += Math.sin(u)*this.sw/u;
  38.                     this._yscale += Math.sin(u)*this.sw/u;
  39.                 }*/
  40.     };
  41. };
  42.  
  43.  
  44. Und zum Auführen habe ich follgene Skripts auf den Button:
  45.  
  46. auf:
ActionScript:
  1. on (release) {
  2.     test.gotoAndStop(2);
  3.     test.initWabbAuf(1, 100, 5);
  4.     test.WabberAuf();
  5. }
  6.  
  7. zu:
ActionScript:
  1. on (release){
  2. test.initWabbZu(100, 0.2, 1);
  3. test.WabberZu();
  4. }


zum besseren Verständnis habe ich hier nochmal die .fla hochgeladen...

Vielen Dank im vorraus.
Guido

Geändert von stylefetish (18-09-2003 um 14:46 Uhr)
stylefetish ist offline   Mit Zitat antworten
Alt 18-09-2003, 13:12   #2 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
Opps fla vergessen…

hier der file :-)
Angehängte Dateien
Dateityp: zip wabbern.fla.zip (2,8 KB, 17x aufgerufen)
stylefetish ist offline   Mit Zitat antworten
Alt 18-09-2003, 14:03   #3 (permalink)
!=
 
Benutzerbild von sectore
 
Registriert seit: Jun 2001
Ort: Hamburg / Eutin
Beiträge: 249
Hi stylefetish,

wenn Du beim Start die Skalierung auf 1% setzt und diese mit
ActionScript:
  1. this._xscale += 30;
  2.      this._yscale += 30;
immer um weitere 30 erhöhst, kommst Du automatisch über 100%. Selbst wenn Du mit der if-Abfrage die Endskalierung auf 100 eingrenzt. Denn in Deinem Fall wird die Skalierung über folgende Werte gesetzt: "31" , "61" , "91" und zuletzt auf "121" gesetzt...
__________________
v.g.
Jens

WEBSECTOR.DE | WS-Blog
sectore ist offline   Mit Zitat antworten
Alt 18-09-2003, 14:43   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
Question Aber ein Problem habe ich da noch…

Wenn ich die den wert auf 1 setzte ist die skalierung definit zu langsam…

Ich habe irgendwie einen denkfehler… wie kriege ich das denn hin das er mit dem wert auf +10 sitzt und ich auf 100% skalierung komme :/ Ich ckeck das einfach nicht… Vielen dank für die Hilfe.
stylefetish ist offline   Mit Zitat antworten
Alt 18-09-2003, 15:41   #5 (permalink)
!=
 
Benutzerbild von sectore
 
Registriert seit: Jun 2001
Ort: Hamburg / Eutin
Beiträge: 249
Da Du ja nicht wabberst , habe ich den Code mal ein wenig "entrümpelt". Aber das Problem mit der Skalierung auf genau 100 wirst Du immer bekommen, wenn die 100 geteilt durch die Anzahl der Schritte nicht eine ganze Zahl ergibt...
ActionScript:
  1. //
  2. // Werte initialisieren
  3. MovieClip.prototype.init = function (start_scale, end_scale)
  4. {
  5.     this.schritte = 10;
  6.     this.s_s = start_scale;
  7.     this.e_s = end_scale;
  8.     this._xscale = this._yscale = start_scale;
  9. };
  10. //
  11. // Funktion: Aufziehen
  12. MovieClip.prototype.Auf = function ()
  13. {
  14.     this.onEnterFrame = function ()
  15.     {
  16.         if (this._xscale < this.e_s)
  17.         {
  18.             this._xscale += this.schritte;
  19.             this._yscale += this.schritte;
  20.             trace ("Auf = " + this._xscale);
  21.         }
  22.         else
  23.         {
  24.             delete this.onEnterFrame;
  25.         }
  26.     };
  27. };
  28. //
  29. // Funktion: Zurückziehen
  30. MovieClip.prototype.Zu = function ()
  31. {
  32.     this.onEnterFrame = function ()
  33.     {
  34.         if (this._xscale > this.e_s)
  35.         {
  36.             this._xscale -= this.schritte;
  37.             this._yscale -= this.schritte;
  38.             trace ("Zu = " + this._xscale);
  39.         }
  40.         else
  41.         {
  42.             delete this.onEnterFrame;
  43.         }
  44.     };
  45. };
  46. //
  47. // Auf den Button "auf":
  48. on (release) {
  49.     test.gotoAndStop(2);
  50.     test.init(0, 100);
  51.     test.Auf();
  52. }
  53. //
  54. // Auf den Button "zu":
  55. on (release) {
  56.     test.init (100, 0);
  57.     test.Zu ();
  58. }
__________________
v.g.
Jens

WEBSECTOR.DE | WS-Blog
sectore ist offline   Mit Zitat antworten
Alt 18-09-2003, 16:07   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
hehe, naja nicht ganz :-)

zum schleißen verzichte ich auf das Wabbern ;-) Zum öffen finde ich das aber eigentlich ganz gut wenn das so auspendelt… Ist halt net ganz einfach… Es soll halt so eins zwei sekunden noch so leicht wackeln bevor es dann auf hoffentlich 100% stehen bleibt ;-) Ich bin jetzt einfach mal über round math gegangen und habe ein bischen mit den Werten rumexperimentiert, dabei ist dann was rausgekommen was zwar im Ansatz stimmt, aber irgendwie sehr steif wirkt :/

ActionScript:
  1. //______Wabbern_AUF_______________________________
  2. MovieClip.prototype.initWabbAuf = function(start_scale, end_scale, swing) {
  3.     this.s_s=start_scale, this.e_s=end_scale, this.sw=swing;
  4.     this._xscale = this._yscale=0;
  5. };
  6. MovieClip.prototype.WabberAuf = function() {
  7.     u = 0;
  8.     this.onEnterFrame = function() {
  9.         // Normale Bewegung
  10.         if (this._xscale<71) {
  11.             this._xscale += 10;
  12.             this._yscale += 10;
  13.             trace("if"+this._xscale);
  14.         } else {
  15.             u += 0.53;
  16.             // Wabber
  17.             this._xscale += Math.round(Math.sin(u)*this.sw/u);
  18.             this._yscale += Math.round(Math.sin(u)*this.sw/u);
  19.             trace("else"+this._xscale);
  20.             if (this._xscale == 100) {
  21.                 delete this.onEnterFrame;
  22.             }
  23.         }
  24.     };

auf dem button:

ActionScript:
  1. on (release) {
  2.     test.gotoAndStop(2);
  3.     test.initWabbAuf(1, 100, 5);
  4.     test.WabberAuf();
  5. }
stylefetish 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 03:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele