Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-06-2005, 19:06   #1 (permalink)
|Bundeskanzler ||
 
Benutzerbild von bob_mosquito
 
Registriert seit: Nov 2002
Ort: Tübingen
Beiträge: 199
Post [STUFF]...ganz schön sticky ;)

Soo Leuts,

dieser mjau-mjau-stickyButtons-CursorKlebundwiederZurückschnappeffekt is ja schon öfters thematisiert worden. Leider gabs den aber bisher bloß als Flash-5-Version. Und da ich mich gerade bissel in OOP reinzufitzen versuche, möchte ich euch folgende Resultate nich vorenthalten...

Voilá. Die stickyButton-Klasse.

ActionScript:
  1. class stickyButton extends MovieClip {
  2.    
  3.     var accel:Number;
  4.     var convert:Number;
  5.     var xstart:Number;
  6.     var ystart:Number;
  7.     var targetx:Number;
  8.     var targety:Number;
  9.     var radius:Number;
  10.     var r:Number;
  11.     var rollOver:Boolean;
  12.     var normalDepth:Number;
  13.    
  14.     function stickyButton() {
  15.         accel=.01;
  16.         convert=.2;
  17.         xstart=_x;
  18.         ystart=_y;
  19.         targetx=xstart;
  20.         targety=ystart;
  21.         radius=2;
  22.         rollOver = false;
  23.         normalDepth = this.getDepth();
  24.         initialize();
  25.  
  26.     }
  27.    
  28.     function initialize(Void):Void {
  29.         var mc = this;
  30.         r = radius;
  31.         onRollOver = function() {
  32.             mc.rollOver = true;
  33.             mc.swapDepths(_parent.getNextHighestDepth());
  34.             mc.onEnterFrame = function() {
  35.                 mc.sticky_update();
  36.             }
  37.         }
  38.         onRollOut = function() {
  39.             mc.rollOver = false;
  40.         }
  41.         onPress = function() {
  42.             mc.r = 5;
  43.         }
  44.         onRelease = function() {
  45.             mc.r = radius;
  46.         }
  47.         onReleaseOutside = function() {
  48.             mc.r = radius;
  49.             mc.rollOver = false;
  50.         }
  51.     }
  52.    
  53.     function sticky_update(Void):Void {
  54.         var mc:MovieClip = this;
  55.         var xpos:Number = 0;
  56.         var ypos:Number = 0;
  57.  
  58.         if(rollOver){
  59.  
  60.             var deltax:Number=_root._xmouse-xstart;
  61.             var deltay:Number=_root._ymouse-ystart;
  62.             targetx=_root._xmouse-deltax/r;
  63.             targety=_root._ymouse-deltay/r;
  64.  
  65.         } else {
  66.             targetx=xstart;
  67.             targety=ystart;
  68.         }
  69.  
  70.          xpos = xpos *accel + (targetx - _x) * convert;
  71.         _x += xpos;
  72.         ypos = ypos * accel + (targety - _y) * convert;
  73.         _y += ypos;
  74.        
  75.         if(!rollOver && Math.round(_x) == targetx && Math.round(_y) == targety) {
  76.             delete mc.onEnterFrame;
  77.             _x = targetx;
  78.             _y = targety;
  79.             mc.swapDepths(normalDepth);
  80.         }
  81.         trace("_x:"+_x+", targetx:"+targetx+",  _y:"+_y+",  targety:"+targety);
  82.     }
  83. }


Vielleicht kanns ja jemand verwenden...
__________________
§ 328 StGB Absatz 2.3:

Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.

Geändert von bob_mosquito (01-07-2005 um 08:03 Uhr)
bob_mosquito ist offline   Mit Zitat antworten
Alt 30-06-2005, 19:32   #2 (permalink)
zimmer 101
 
Benutzerbild von ricobeck
 
Registriert seit: Jul 2003
Ort: LE
Beiträge: 1.581
sehr nett, das hier reinzustellen [*thumbs.up*],
aber kannst du bitte noch eine version zum angucken
machen? das ist vielleicht wirkungsvoller.



l.g.
rick
__________________
Illogical comparison with NaN. Any comparison operation involving NaN will evaluate to false because NaN != NaN.
ricobeck.de
ricobeck ist offline   Mit Zitat antworten
Alt 30-06-2005, 19:59   #3 (permalink)
|Bundeskanzler ||
 
Benutzerbild von bob_mosquito
 
Registriert seit: Nov 2002
Ort: Tübingen
Beiträge: 199
kommt prompt

Sischa, sischa
Angehängte Dateien
Dateityp: zip sticky.zip (7,1 KB, 47x aufgerufen)
__________________
§ 328 StGB Absatz 2.3:

Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
bob_mosquito 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 14:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele