Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-11-2003, 07:40   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 172
weiches scrollen

Hat einer einen Link oder Tipp für weiches scrollen.

Im Moment mach ich´s ganz stumpf so. Aber schön wäre:

langsam anfangen, schneller werden. Beim runtergehen etwas nachfedern, oder zumindest langsam zum Stillstand kommen.


ActionScript:
  1. onEnterFrame = function (){
  2.    
  3.     if (touchpf.hitTest( _root._xmouse, _root._ymouse, false)){
  4.     laenderliste._y = laenderliste._y*1.005;
  5.    
  6. }
  7. if (touchpf2.hitTest( _root._xmouse, _root._ymouse, false)){
  8.  
  9.     laenderliste._y = laenderliste._y*0.995;
  10.    
  11. }
  12. }
JensEickhoff ist offline   Mit Zitat antworten
Alt 06-11-2003, 09:47   #2 (permalink)
little mogwai
 
Registriert seit: Jun 2001
Beiträge: 371
Schau Dir mal Robert Penners Easing Equations an:

http://www.robertpenner.com/easing/
tenrapid ist offline   Mit Zitat antworten
Alt 06-11-2003, 11:59   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 172
Hallo.

Die Funktion für Elastisches ausfaden ist eigentlich die, die ich brauch

ActionScript:
  1. Math.easeOutElastic = function (t, b, c, d, a, p) {
  2.     if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
  3.     if (a < Math.abs(c)) { a=c; var s=p/4; }
  4.     else var s = p/(2*Math.PI) * Math.asin (c/a);
  5.     return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
  6. };

Wie verbinde ich die jetzt mit meinem hittest?!
JensEickhoff ist offline   Mit Zitat antworten
Alt 06-11-2003, 14:35   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 172
Also, so geht es ja nicht. Ich glaube ich krieg das eh nicht hin...




ActionScript:
  1. if (touchpf.hitTest( _root._xmouse, _root._ymouse, false)){
  2.  
  3.      Math.easeOutElastic = function (t, b, c, d, a, p) {
  4.         if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
  5.         if (a < Math.abs(c)) { a=c; var s=p/4; }
  6.         else var s = p/(2*Math.PI) * Math.asin (c/a);
  7.         return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
  8. };
  9.  
  10.         }
  11.         if (touchpf2.hitTest( _root._xmouse, _root._ymouse, false)){
  12.                
  13.                 laenderliste._y = laenderliste._y*0.995;
  14.                
  15.         }
  16. }
JensEickhoff ist offline   Mit Zitat antworten
Alt 06-11-2003, 18:55   #5 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
wenn ich nur darauf kommen würde, was du überhaupt machen willst ??
warrantmaster ist offline   Mit Zitat antworten
Alt 07-11-2003, 07:33   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 172
Mmm. Ja ich hab links eine Liste mit 220 Ländernamen und oben einen Pfeil und unten einen Pfeil. Wenn ich oben über den Pfeil gehe soll es anfangen nach oben zu scrollen (unten genauso), wenn ich den Mauszeiger wegziehe soll die Länderliste nachfedern, so wie bei Robert Penner´s easing equation (elasticOut), die ich ja mal von seiner Site hierhin kopiert hab.

Wie genau ich die jetzt einbinde weiss ich aber nicht, also die easing equation statt meinem y = y *0.9

Jens
JensEickhoff ist offline   Mit Zitat antworten
Alt 07-11-2003, 12:23   #7 (permalink)
little mogwai
 
Registriert seit: Jun 2001
Beiträge: 371
Wenn Du auf das Nachfedern verzichten kannst, hilft Dir vielleicht folgendes schon weiter:

ActionScript:
  1. softScroller=new Object();
  2. softScroller.scrolling=function() {
  3.     this.v+=this.a;
  4.     if (Math.abs(this.v)>=this.vmax) this.a=0;
  5.     if (-this.a/Math.abs(this.a)*this.v<=0 && this.stop) {
  6.         this.a=0;
  7.         this.v=0;
  8.     }
  9.     this.mc._y+=this.v;
  10. }
  11. softScroller.onRollOver=function(dir) {
  12.     this.stop=false;
  13.     this.a=dir*this.aMax;
  14. }
  15. softScroller.onRollOut=function() {
  16.     this.a=-this.v/Math.abs(this.v)*this.aMax;
  17.     this.stop=true;
  18. }
  19. softScroller.a=0;
  20. softScroller.aMax=0.8;
  21. softScroller.v=0;
  22. softScroller.vMax=8;
  23.  
  24. softScroller.mc=laenderliste;
  25.  
  26. _root.onEnterFrame=function() {
  27.     softScroller.scrolling();
  28. }
  29.  
  30.  
  31. touchpf.scroller=softscroller;
  32. touchpf.onRollOver=function() {
  33.     this.scroller.onRollOver(1);
  34. }
  35. touchpf.onRollOut=function() {
  36.     this.scroller.onRollOut();
  37. }
  38.  
  39. touchpf2.scroller=softscroller;
  40. touchpf2.onRollOver=function() {
  41.     this.scroller.onRollOver(-1);
  42. }
  43. touchpf2.onRollOut=function() {
  44.     this.scroller.onRollOut();
  45. }
tenrapid ist offline   Mit Zitat antworten
Alt 07-11-2003, 14:07   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 172
Ja, vielen Dank, damit ist es auch schon ganz schön!

Das kann ich erstmal so lassen.

Jens
JensEickhoff 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:20 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele