From 09a4fd027e51dc3f1dbfcc2f06a3c5224f73b224 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Mon, 3 Aug 2009 19:55:49 +0200 Subject: Applied rfxview mousewheel patch from John Sullivan --- swfs/rfxview.sc | 125 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 88 insertions(+), 37 deletions(-) (limited to 'swfs') diff --git a/swfs/rfxview.sc b/swfs/rfxview.sc index 9707a77a..a65af2c9 100644 --- a/swfs/rfxview.sc +++ b/swfs/rfxview.sc @@ -240,6 +240,33 @@ .frame 1 +.box background_box line=1 color=#00000030 fill=#00000030 width=800 height=600 +.sprite background + .put background_box x=0 y=0 +.end +.put background + +# horizontal scroll outline +.box hscroll_box line=1 color=#000000 width=800-20 height=10 +.sprite hscroll_outline + .put hscroll_box x=0 y=0 +.end +.put hscroll_outline + +# vertical scroll outline +.box vscroll_box line=1 color=#000000 width=10 height=600-20 +.sprite vscroll_outline + .put vscroll_box x=0 y=0 +.end +.put vscroll_outline + +# content outline +.box content_box width=100 height=100 line=1 color=#000000 +.sprite content_outline + .put content_box x=0 y=0 +.end +.put content_outline + .put p1=plusbutton x=width-25-20 y=20 pin=center .put m1=minusbutton x=width-50-20 y=20 pin=center .put o1=oneonebutton x=width-75-20 y=20 pin=center @@ -248,10 +275,6 @@ .put l1=leftbutton x=width/2-100 y=20 pin=center .put r1=rightbutton x=width/2+100 y=20 pin=center -.sprite background -.end -.put background - .sprite vscrollbar .box vscroll2_shadow line=0 fill=#00000033 width=14 height=100 .sprite vshadow @@ -380,6 +403,27 @@ contentwidth = fullwidth - 40; contentheight = fullheight - 70; + background._width = fullwidth-1; + background._height = fullheight-1; + + // resize/position hscroll outline + hscroll_outline._x = 10; + hscroll_outline._y = fullheight-20; + hscroll_outline._width = fullwidth-40; + hscroll_outline._height = 10; + + // resize/position vscroll outline + vscroll_outline._x = fullwidth-20; + vscroll_outline._y = 40; + vscroll_outline._width = 10; + vscroll_outline._height = fullheight-70; + + // resize/position content outline + content_outline._x = 9; + content_outline._y = 39; + content_outline._width = contentwidth+1; + content_outline._height = contentheight+1; + // move all objects to their proper positions vscrollbar._x = fullwidth-22; hscrollbar._y = fullheight-22; @@ -394,37 +438,6 @@ et._x = fullwidth/2 - (et._width+etmiddle._width+et_total_pages._width)/2; etmiddle._x = fullwidth/2 - (et._width+etmiddle._width+et_total_pages._width)/2 + et._width; et_total_pages._x = fullwidth/2 - (et._width+etmiddle._width+et_total_pages._width)/2 + et._width+etmiddle._width; - - //.box f width=width-40 height=height-40-30 line=0 fill=black - //.box vscroll1 width=10 height=height-40-30 line=1 color=#00000060 fill=grad7 - //.box hscroll1 height=10 width=width-40 line=1 color=#00000060 fill=grad72 - //.put vscroll1 x=width-20 y=40 - //.put hscroll1 x=10 y=height-20 - - // horizontal scrollbar - background.lineStyle(1, 0, 0x60); - background.moveTo(10 ,fullheight-20); - background.lineTo(10 ,fullheight-10); - background.lineTo(10+fullwidth-40,fullheight-10); - background.lineTo(10+fullwidth-40,fullheight-20); - background.lineTo(10 ,fullheight-20); - - // vertical scrollbar - background.moveTo(fullwidth-20 ,40); - background.lineTo(fullwidth-20 ,fullheight-30); - background.lineTo(fullwidth-10 ,fullheight-30); - background.lineTo(fullwidth-10 ,40); - background.lineTo(fullwidth-20 ,40); - - // content area - background.lineStyle(1, 0); - background.startFill(0x000000); - background.moveTo(9, 39); - background.lineTo(fullwidth-30+1, 39); - background.lineTo(fullwidth-30+1, fullheight-29); - background.lineTo(9, fullheight-29); - background.lineTo(9, 39); - background.endFill(); areabutton._xscale = contentwidth; areabutton._yscale = contentheight; @@ -440,9 +453,17 @@ //debugtxt.text = Stage.width+ " x " + Stage.height; //debugtxt.text = zoomtype; - setPageNr = function() { + setPageNr = function(setscroll) { current_pagenumber = pagenr; - viewport.gotoAndStop(pagenr); + viewport.gotoAndStop(pagenr); + if(!setscroll) { + viewport._y = top; + swfpos2scrollbars(); + } + else { + viewport._y = setscroll; + swfpos2scrollbars(); + } }; setNoScrollZoomLevel = function() { @@ -627,6 +648,36 @@ } }; dragrefresh = setInterval(refreshDrag, 20); + + var mouseListener = new Object(); + + mouseListener.onMouseWheel = function(delta) { + divideDelta = delta/Math.abs(delta); + viewport._y = viewport._y + 30*zoom*divideDelta; + swfpos2scrollbars(); + if(viewport._y < top-scrollyrange) { + if(pagenr < viewport._totalframes) { + pageNr = pageNr + 1; + setPageNr(); + } + else { + viewport._y = top-scrollyrange; + swfpos2scrollbars(); + } + } + else if(viewport._y > top) { + if(pagenr > 1) { + pageNr = pageNr - 1; + setPageNr(top-scrollyrange); + } + else { + viewport._y = top; + swfpos2scrollbars(); + } + } + }; + + Mouse.addListener(mouseListener); .end .end -- cgit v1.2.3