Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-04-2004, 17:24   #1 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
AS bewegung am ende schnell

hallo

ich habe dieses script zur bewegung eines objektes:

ActionScript:
  1. onClipEvent (load) {
  2.     targetx = 450;
  3.     delay = 8;
  4. }
  5. onClipEvent (enterFrame) {
  6.     distx = targetx-_x;
  7.     _x += distx/delay;
  8. }

gibt es eine bewegung, bei der das objekt schneller wird und am ende am schnellsten ist ??
welche werte muss ich ändern ??


gruss
__________________
---
www.wellenmacher.de

Geändert von get-the-flash (11-04-2004 um 17:30 Uhr)
get-the-flash ist offline   Mit Zitat antworten
Alt 11-04-2004, 17:34   #2 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
ah, ganz einfach!
den delay einfach negativ machen....
man muss ihn dann nur irgendwie begrenzen, weil der film sonst abhaut...

gruss
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 11-04-2004, 21:53   #3 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
Is jetzt vielleicht a bissl umständlich gemacht.
ActionScript:
  1. onClipEvent (load) {
  2.         targetx = 450;
  3.         delay = 8;
  4.         urDist = targetx - this._x;
  5.         simulX = _x;
  6.         urX = _x;
  7.         soft = 1;// normal > 1 wird es "softer" ;-)
  8. }
  9. onClipEvent (enterFrame) {
  10.         distx = targetx - simulX;
  11.         saveX = distx/delay;
  12.         simulX += saveX;
  13.         faktor = ( simulX - urX  ) / ( soft * delay )
  14.         this._x += (this._x < targetx - faktor ) ? faktor : (targetx - this._x) ;
  15. }

ps.: funzt nur in + Richtung

mfg geo

edith: jetzt geht es in beide richtungen !

ActionScript:
  1. onClipEvent (load) {
  2.         targetx = 100;
  3.         delay = 8;
  4.         simulX = _x;
  5.         urX = _x;
  6.         soft = 2;// normal > 1 wird es "softer" ;-)
  7.         direction = (targetx - urX) / Math.abs(targetx - urX);
  8. }
  9. onClipEvent (enterFrame) {
  10.         distx = targetx - simulX;
  11.         simulX +=  distx/delay;
  12.         faktor = ( Math.abs(simulX - urX)  ) / ( soft * delay )
  13.         if(direction > 0) this._x += (this._x < targetx - faktor*direction ) ? (faktor * direction) : (targetx - this._x) ;
  14.         if(direction < 0) this._x += (this._x > targetx - faktor*direction ) ? (faktor * direction) : (targetx - this._x) ;
  15. }
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker

Geändert von _geo_ (11-04-2004 um 22:18 Uhr)
_geo_ ist offline   Mit Zitat antworten
Alt 11-04-2004, 22:26   #4 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
habs schon hinbekommen.
dein script ist aber irgendwie fehlerhaft, da sich das objekt mit gleicher geschwindigkeit bewegt...

trotzdem danke
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 12-04-2004, 18:01   #5 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

hier sind die easing equations von Robert Penner ganz hilfreich. Ist ein as-Include, dass verschiedene Bewegungen berechnet, mit ease-In und ease-out, linear, kubisch, trigonometrisch, elastisch, etc..

Hier im Forum gibts auch einige Threads zum Thema easing. Such einfach mal nach easing equations.


Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-04-2004, 19:48   #6 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
Zitat:
Geschrieben von ludabruda
Hi,

hier sind die easing equations von Robert Penner ganz hilfreich. Ist ein as-Include, dass verschiedene Bewegungen berechnet, mit ease-In und ease-out, linear, kubisch, trigonometrisch, elastisch, etc..

Hier im Forum gibts auch einige Threads zum Thema easing. Such einfach mal nach easing equations.
ist halt eher alles für flashMX und aufwärts....
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 12-04-2004, 20:14   #7 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Wieso? In den Equations werden auch nur ganz gewöhnliche mathematische Funktionen verwendet, wie sin, cos, pow und sqrt.
Mehr passiert da auch nicht. Und selbst wenn, könnte man die Gleichungen ganz easy () so umschreiben, dass sie sogar in Flash4 laufen (ok, dann besser mit Umrechnungs-Arrays a la eval() für die trigonometrischen Funktionen, weil Flash 4 hier stresst, aber sonst....)

Die Funktionen, die für dich interessant wären (z.B. easeInOutCubic) beruhen rein auf den Grundrechenarten.

Probiers halt mal..


Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-04-2004, 20:52   #8 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
ich muss sagen, ich komme damit nicht so wirklich klar.
ActionScript:
  1. Math.easeInQuad = function (t, b, c, d) {
  2.     return c*(t/=d)*t + b;
  3. };

z.b. was muss ich hiermit machen ???

gruss
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 13-04-2004, 01:08   #9 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
irgendwo im .as stehen die Erklärungen für die Parameter:
t ist die aktuelle Zeit (oder aktueller Step)
b der Startwert
c die Differenz zum Startwert
d die Gesamtzeit (oder Gesamtsteps)

Ein Beispiel:

ActionScript:
  1. mc.steps = 20;
  2. mc.startX = mc._x;
  3. mc.endX = 400;
  4. mc.counter = 0;
  5. mc.onEnterFrame = function() {
  6.     if(this.counter < this.steps) {
  7.     this._x = Math.easeInQuad(this.counter, this.startX, this.endX-this.startX,this.steps);
  8. } else delete this.onEnterFrame;
  9. }


Das wars schon...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 17-04-2004, 17:46   #10 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
sorry, dass ist MX script!
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 17-04-2004, 19:16   #11 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ok, dann eben so...

ActionScript:
  1. onClipEvent(load) {
  2. this.steps = 20;
  3. this.startX = this._x;
  4. this.endX = 400;
  5. this.counter = 0;
  6. }
  7.  
  8. onClipEvent(enterFrame) {
  9.  if(this.counter < this.steps) {
  10. this.counter++;
  11.                 this._x = Math.easeInQuad(this.counter, this.startX, this.endX-this.startX,this.steps);
  12.         }
  13. }

Es geht doch auch nur darum, dass easeInQuad und alle anderen Easings auch mit Flash 5 gehen...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 17-04-2004, 19:41   #12 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
da bewegt sich nix! null!
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 17-04-2004, 19:48   #13 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
wieso nicht? du musst nur die easing_equations.as includen und das Script auf einen MC legen...bei mir gings sofort...auch mit dem 5er PlugIn im Browser.

Geht das swf bei dir?

Grüße
Sascha


PS: beim ersten Script hatte ich das this.counter++ vergessen. Das ist natürlich nicht unwichtig hast du den neuen Code mal kopiert?
Angehängte Dateien
Dateityp: rar easing.rar (5,1 KB, 27x aufgerufen)
__________________
12:15, press return

Geändert von ludabruda (17-04-2004 um 19:50 Uhr)
ludabruda ist offline   Mit Zitat antworten
Alt 17-04-2004, 19:53   #14 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
kann deine fla nicht öffnen.
das mit dem .as includen wusste ich nicht. wie geht das ??
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 17-04-2004, 20:06   #15 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
#include "easing_equations.as"

(ohne Semikolon, einfach in den ersten Frame)

Die easing_equations.as hast du doch, oder?

Grüße
Sascha
__________________
12:15, press return
ludabruda 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 20:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele