Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-06-2004, 09:30   #1 (permalink)
Fleischer
 
Benutzerbild von one.ID
 
Registriert seit: Mar 2003
Ort: mg town
Beiträge: 147
Sinus mit Bremse

Moijen zusammen,

ich habe einen Methode geschrieben, die einen MC im Bereich von -100 und 100 hinundher laufen lässt.

Das Ganze sieht derzeit so aus:

ActionScript:
  1. MovieClip.prototype.pendel = function()
  2. {
  3.     var cnt = 0;
  4.     this.onEnterFrame = function()
  5.     {
  6.         this._x = Math.sin( cnt / 10 )* 100;
  7.         cnt++;
  8.     }
  9. }
  10. mc.pendel();

Ich muss die Funktion jetzt aber noch dahingehend erweitern, dass die Bewegung des MCs zur Mitte hin, also gegen 0, abgebremst wird.
Oder anders ausgedrückt - je weiter sich der MC an den äußern Grenzen befindet (-100 und 100), desto schneller soll die Bewegung sein.

Ich bin mir in diesem Zusammenhang nicht ganz sicher, ob eine Lösung mit Sinus überhaupt Sinn macht oder ob vielleicht eine andere Vorhergehensweise vorzuziehen ist.

Freue mich auf Anregungen zur Lösung des Problems.

cheers.

one.ID
one.ID ist offline   Mit Zitat antworten
Alt 30-06-2004, 10:21   #2 (permalink)
•[Flash 'n TV Junky]•
 
Benutzerbild von ChrisChaos2k
 
Registriert seit: May 2003
Ort: Thüringen
Beiträge: 304
hi,

meinst du vielleicht sowas. hab ich mal schnell zusammengebastelt
ActionScript:
  1. pendeln(100);
  2. function pendeln(Ymax) {
  3.     i = 1;
  4.     ziely = deinmc._y-Ymax;
  5.     this.onEnterFrame = function() {
  6.         delta_y = ziely-deinmc._y;
  7.         deinmc._y += delta_y/4;
  8.         if (Math.abs(delta_y)<1) {
  9.             if ((i%2) == 1) {
  10.                 ziely += (Ymax*2);
  11.             } else {
  12.                 ziely -= (Ymax*2);
  13.             }
  14.             i++;
  15.         }
  16.     };
  17. }

brauchst nur einen MC namens "deinmc" und das script in die hauptzeitleiste legen.

Chris
__________________
Work less - play more! ;)

Geändert von ChrisChaos2k (30-06-2004 um 10:23 Uhr)
ChrisChaos2k ist offline   Mit Zitat antworten
Alt 30-06-2004, 10:29   #3 (permalink)
Fleischer
 
Benutzerbild von one.ID
 
Registriert seit: Mar 2003
Ort: mg town
Beiträge: 147
Auch nicht schlecht!
Ich brauche aber genau das Gegenteil:

> schnell <-> langsam <-> schnell <

Trotzdem geiles Teil!
one.ID ist offline   Mit Zitat antworten
Alt 30-06-2004, 12:06   #4 (permalink)
•[Flash 'n TV Junky]•
 
Benutzerbild von ChrisChaos2k
 
Registriert seit: May 2003
Ort: Thüringen
Beiträge: 304
ok.. so vielleicht? sau kompliziert, kann man sicher einfacher machen..
aber ich weiß nich mehr wie man die abbremsfunktion noch umgekehrt ausführen kann.. geht aber irgendwie.. weiß nich mehr..
ActionScript:
  1. pendeln(100);
  2. function pendeln(Ymax) {
  3.     ziely = deinmc._y;
  4.     schritte = Math.floor(Ymax/128);
  5.     schritte += 7;
  6.     s2 = schritte;
  7.     abstand = Ymax;
  8.     abstand /= Math.pow(2, schritte);
  9.     a2 = abstand;
  10.     i = 10;
  11.     this.onEnterFrame = function() {
  12.         if ((i%4) == 3) {
  13.             deinmc._y = ziely - (abstand*=2);
  14.             schritte--;
  15.             if (schritte == 0) {
  16.                 deinmc._y = ziely - (abstand*=2);
  17.                 schritte = s2;
  18.                 abstand = a2;
  19.                 i++;
  20.             }
  21.         }
  22.         if ((i%4) == 0 || (i%4) == 2) {
  23.             delta_y = ziely - deinmc._y;
  24.             deinmc._y += delta_y/2;
  25.             if(Math.abs(delta_y)<1){
  26.                 i++;
  27.             }
  28.         }
  29.         if ((i%4) == 1) {
  30.             deinmc._y = ziely + (abstand*=2);
  31.             schritte--;
  32.             if (schritte == 0) {
  33.                 schritte = s2;
  34.                 abstand = a2;
  35.                 i++;
  36.             }
  37.         }
  38.     };
  39. }
__________________
Work less - play more! ;)
ChrisChaos2k ist offline   Mit Zitat antworten
Alt 30-06-2004, 12:59   #5 (permalink)
Fleischer
 
Benutzerbild von one.ID
 
Registriert seit: Mar 2003
Ort: mg town
Beiträge: 147
Schon wieder so ein geiles Dingen.
Ich denke damit läßt sich was anfangen!

Vielen Dank für Deine Mühe!

cheers.

one.ID
one.ID ist offline   Mit Zitat antworten
Alt 30-06-2004, 13:06   #6 (permalink)
•[Flash 'n TV Junky]•
 
Benutzerbild von ChrisChaos2k
 
Registriert seit: May 2003
Ort: Thüringen
Beiträge: 304
Arrow

bitte bitte.. trotzdem find ichs zu kompliziert +g+ ich such vielleicht mal was einfacheres..
vielleicht findet sich was oder es findet sich jemand der noch ne idee hat...
__________________
Work less - play more! ;)
ChrisChaos2k 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 05:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele