Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-01-2004, 13:57   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 57
funktion zuerst größer dann kleiner

Hi Forum!

Vielleicht hat ja schon mal wer von euch so ne Funktion gebastelt, dann erspar ich mir die Tüftelei:

Ich möchte AS auf _yscale eines mcs anwenden und ihn zuerst größer und dann kleiner machen (sprich: von 100% in ca. zwei Schritten auf 110% und dann runter bis 0).

Sinn des Ganzen: invertiertes Easing, sodass es nicht allzu plump aussieht, wenn ich den mc schließe.

Habs schon gemacht mit if Abfragen, allerdings ist mir das nicht elegant genug. Irgendeine Formel gibts sicher, nur hab ich die grad nicht zur Hand.

HLP needed!

Danke, lG
Bernie
deltacon ist offline   Mit Zitat antworten
Alt 26-01-2004, 15:51   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

hier mal ein kleiner Ansatz...

ActionScript:
  1. mc.maxScale = 110;
  2. mc.scale = mc._yscale;
  3. mc.minScale = 0;
  4. mc.steps1 = 2;
  5. mc.steps2 = 2;
  6. mc.go1 = true;
  7. mc.go2 = false;
  8. mc.scaleStep1 = (mc.maxScale-mc.scale) / mc.steps1;
  9. mc.scaleStep2 = (mc.maxScale-mc.minScale) / mc.steps2;
  10. mc.onEnterFrame = function() {
  11.     trace(this._yscale);
  12.    
  13.     if(this.go1) {
  14.         if(this._yscale < this.maxScale) {
  15.             this._yscale += this.scaleStep1;   
  16.         } else {
  17.             this.go1 = false;
  18.             this.go2 = true;
  19.         }
  20.     } else if(this.go2) {
  21.         if(this._yscale > this.minScale) {
  22.             this._yscale -= this.scaleStep2;   
  23.         } else {
  24.             this.go2 = false;
  25.             delete this.onEnterFrame;
  26.         }
  27.     }
  28. }

ist noch nix optimiertes, für eine Ease-Funktion benötigst du noch Beschleunigung in den Werten, aber vielleicht hilft es dir erstmal weiter.

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 26-01-2004, 16:00   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
hab auch noch einen kleinen ansatz für Dich!!
ActionScript:
  1. Movieclip.prototype.bigsmall = function(m, maxX, minX, speed) {
  2.     this._width=minX;
  3.     setInterval(function () {
  4.         if (m._width>maxX || m._width<minX) {
  5.             speed = -speed;
  6.         }
  7.         m._width += speed;
  8.         m._height += speed;
  9.         updateAfterEvent();
  10.     }, 50);
  11. };
  12. bigsmall(mc, 300, 100, 25);
Angehängte Dateien
Dateityp: zip big_small.zip (3,2 KB, 15x aufgerufen)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 27-01-2004, 09:50   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 57
Cool, danke! Gut zu gebrauchen!

Ich dachte zwar, dass irgendein findiges Mathematik Genie mal eine Funktion oder Formel entwickelte, die das macht (beispielsweise basierend auf einem Sinus), aber so ises auch super!

Danke, wenn ich Zeit habe, werd ich mich mal hinsetzen und eine formel basteln, gedanklich hab ich schon einen Ansatz! Poste ich dann mal!

lG
Bernie
deltacon 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 13:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele