Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-01-2005, 13:56   #1 (permalink)
nexus
 
Registriert seit: Jun 2003
Ort: Hamburg
Beiträge: 23
dynamischer scroller

halöle,

habe probleme bei der dynamik eines scrollers....
das problem ist folgendes...
bei onrelease des scrollbalken fährt das zu slidende mc nicht in seine position, so wie es bereits durch die beiden anderern buttons realisiert wurde.
ausserdem brauche ich einen denkansatz dafür,dass der scrollbar bei up/down auch zur gewünschten realtiven position fährt.
die einzelnen positionen habe ich mit dem differenzwert var diz
schon ausgerechnet.
die tweening classe in der anlage ist wichtig.
jemand gab mir bereits den tip
###
.... um die zeit kümmern musst. im moment ist 1
sekunde als dauer für das sliden zur neuen y position angegeben. du
müsstest aber eigentlich eine geschwindigkeit festlegen und anhand der
aktuellen y position in bezug zur neuen y position festlegen, wie lange
der container benötigt um dorthin zu sliden.
####
kann aber irgendwie mit meinen as kenntnissen damit nichts anfangen.

hier der code um den es sich dreht:
ActionScript:
  1. #include "lmc_tween_as1.as"
  2. var scRand = 2.9;
  3.  
  4. attachMovie("btnUp", "btnUp", 2, {_x:scRand,_y:scRand,_alpha:0,enabled:0} );
  5. attachMovie("btnDown", "btnDown", 3, {_x:scRand,_y:(scHoehe-scRand-btnUp._height),_alpha:0,enabled:0} );
  6. attachMovie("scrollbar", "scrollbar", 4, {_x:scRand+1,_y:btnUp._height+2*scRand,_alpha:0,enabled:0} );
  7.  
  8.     scrollbar.minY = btnUp._height+2*scRand;
  9.     scrollbar.maxY = scHoehe-btnUp._height-2*scRand;
  10. var diz = (scHoehe-2*btnDown._height-4*scRand - scrollbar._height)/(bilderArray[0].length-1);
  11. var numBoxes = bilderArray[0].length-1;
  12. var boxHeight = 530;
  13. var boxSpacing = 0;
  14. var scrollStep = 0;
  15. var boxHolder = _parent[scMc];
  16. var speed      = .002; // 0.5 sek / 100 px
  17. var scMc_Hoehe = ((bilderArray[0].length-1) * 500)+((bilderArray[0].length-1)*30) ;
  18.  
  19. setButtonActions();
  20. initScrollbar();
  21.  
  22. function scrollUp()
  23. {
  24.     if ( scrollStep <= 0 )
  25.         return;
  26.     scrollStep--;
  27.     doScroll();
  28. }
  29.  
  30. function scrollDown()
  31. {
  32.     if ( scrollStep >= numBoxes )
  33.         return;
  34.     scrollStep++;
  35.     doScroll();
  36. }
  37.  
  38. function doScroll( y )
  39. {
  40.     $tweenManager.removeTween();
  41.    
  42.     if ( y == undefined ){
  43.         y = getYForStep( scrollStep );
  44.             }
  45.     var sp = calcSpeed( y );
  46.  
  47.     boxHolder.slideTo( boxHolder._x, y, sp );
  48.  
  49. }
  50.  
  51. function onScroll( percent )
  52. {
  53.     var newY = -Math.round( scMc_Hoehe / 100 * percent );
  54.     doScroll( newY );
  55. }
  56.  
  57. function calcSpeed( newY )
  58. {
  59.     var sp = Math.abs( newY - boxHolder._y ) * speed;
  60.     return sp;
  61. }
  62.  
  63. function getYForStep( s )
  64. {
  65.     return -( s * boxHeight + ( s - 1 ) * boxSpacing );
  66. }
  67.  
  68. function setButtonActions()
  69. {
  70.     btnUp.onRelease = function() { this._parent.scrollUp(); }
  71.     btnDown.onRelease = function() { this._parent.scrollDown(); }
  72. }
  73.  
  74. function initScrollbar()
  75. {
  76.  
  77.     scrollbar.onRelease = scrollbar.onReleaseOutside = function() { delete this.onEnterFrame; }
  78.     scrollbar.onPress = function() { this.oldY = this._y; this.startY = _root._ymouse; this.onEnterFrame = this.checkMovement; }
  79.     scrollbar.checkMovement = function()
  80.     {
  81.         var yDif = _root._ymouse - this.startY;
  82.         var newY = this.oldY + yDif;
  83.         if ( newY < this.minY ) newY = this.minY;
  84.         else if ( newY > this.maxY - this._height ) newY = this.maxY - this._height;
  85.         this._y = newY;
  86.         this.calcPercent();
  87.         this._parent.onScroll( this.percent );
  88.     }
  89.  
  90.     scrollbar.calcPercent = function()
  91.     {
  92.         this.percent = ( this._y - this.minY ) / ( ( this.maxY - this._height - this.minY ) / 100 );
  93.     }
  94. }
Angehängte Dateien
Dateityp: zip lmc_tween_as1.zip (5,2 KB, 48x aufgerufen)
jan.loseries 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:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele