From 0a6a5f3e53542f43512368ae53e73d939485363c Mon Sep 17 00:00:00 2001 From: kramm Date: Fri, 11 Jul 2008 08:53:44 +0000 Subject: [PATCH] swfc based viewer for pdf2swf swfs --- swfs/rfxview.sc | 547 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ swfs/rfxview.swf | Bin 0 -> 4541 bytes 2 files changed, 547 insertions(+) create mode 100644 swfs/rfxview.sc create mode 100644 swfs/rfxview.swf diff --git a/swfs/rfxview.sc b/swfs/rfxview.sc new file mode 100644 index 0000000..1fd50c8 --- /dev/null +++ b/swfs/rfxview.sc @@ -0,0 +1,547 @@ +.flash filename=rfxview.swf fps=30 bbox=600x800 version=8 compress background=#CCCCCC export=0 + +.define width 600 +.define height 800 + +#======================================== buttons =========================================================== + +.gradient grad1 radial x=4 y=4 r=28: + 0% white + 50% #666666 + 100% #202020 +.end +.gradient grad2 linear width=8 height=6 rotate=120: + 0% white + 70% #666666 + 100% #202020 +.end +.gradient grad4 linear width=8 height=6 rotate=120: + 0% white + 70% #999999 + 100% #404040 +.end + +.gradient grad2l linear width=8 height=6 rotate=120: + 0% #e0e0e0 + 100% #000000 +.end +.gradient grad4l linear width=8 height=6 rotate=120: + 0% #ffffff + 100% #404040 +.end + +.gradient grad3 radial x=4 y=4 r=28: + 0% white + 70% #999999 + 100% #404040 +.end + +.gradient grad7 linear rotate=180: + 0% #777777 + 100% #666666 +.end + +.gradient grad72 linear rotate=45: + 0% #999999 + 100% #666666 +.end + +.outline arrowoutline: + moveTo -8,-8 + lineTo -8, 8 + lineTo 8, 0 + lineTo -8,-8 +.end + +.outline larrowoutline: + moveTo 8,-8 + lineTo 8, 8 + lineTo -8, 0 + lineTo 8,-8 +.end + +.font arialbold filename="../viewer/ArialBold.ttf" glyphs="1:" +.font arial filename="../viewer/Arial.ttf" glyphs="0123456789 /:" + +.textshape oneoneoutline text="1:1" font=arialbold size=14pt + +.outline plusoutline: + moveTo 2,-8 + lineTo -2,-8 + lineTo -2,-2 + lineTo -8,-2 + lineTo -8,2 + lineTo -2,2 + lineTo -2,8 + lineTo 2,8 + lineTo 2,2 + lineTo 8,2 + lineTo 8,-2 + lineTo 2,-2 + lineTo 2,-8 +.end + +.outline minusoutline: + moveTo -7,2 + lineTo -7,-2 + lineTo 7,-2 + lineTo 7,2 + lineTo -7,2 +.end + +.circle shadcircle line=0 fill=#00000033 r=11.5 + +.circle outcircle line=2 color=#00000060 fill=grad1 r=11 +.circle outcircle_over line=2 color=#00000060 fill=grad3 r=11 + +.filled incircle outline=arrowoutline fill=grad2 line=1 color=#00000060 +.filled incircle_over outline=arrowoutline fill=grad4 line=1 color=#00000060 +.filled lincircle outline=larrowoutline fill=grad2l line=1 color=#00000060 +.filled lincircle_over outline=larrowoutline fill=grad4l line=1 color=#00000060 +.filled pincircle outline=plusoutline fill=grad2l line=1 color=#00000060 +.filled pincircle_over outline=plusoutline fill=grad4l line=1 color=#00000060 +.filled mincircle outline=minusoutline fill=grad2l line=1 color=#00000060 +.filled mincircle_over outline=minusoutline fill=grad4l line=1 color=#00000060 +.filled oincircle outline=oneoneoutline fill=grad2l line=1.2 color=#00000060 +.filled oincircle_over outline=oneoneoutline fill=grad4l line=1.2 color=#00000060 + +.sprite plusface + .put shadcircle 11 13 pin=center .put outcircle 11 11 pin=center .put pincircle 11 11 pin=center scale=90% +.end +.sprite plusfaceover + .put shadcircle 11 13 pin=center .put outcircle_over 11 11 pin=center .put pincircle_over 11 11 pin=center scale=90% +.end +.sprite plusfacedown + .put shadcircle 11 13 pin=center scale=90% .put outcircle_over 11 11 pin=center scale=90% .put pincircle_over 11 11 pin=center scale=79% +.end + +.sprite minusface + .put shadcircle 11 13 pin=center .put outcircle 11 11 pin=center .put mincircle 11 11 pin=center scale=90% luminance=60% +.end +.sprite minusfaceover + .put shadcircle 11 13 pin=center .put outcircle_over 11 11 pin=center .put mincircle_over 11 11 pin=center scale=90% +.end +.sprite minusfacedown + .put shadcircle 11 13 pin=center scale=90% .put outcircle_over 11 11 pin=center scale=90% .put mincircle_over 11 11 pin=center scale=79% +.end + +.sprite rbface + .put shadcircle 11 13 pin=center .put outcircle 11 11 pin=center .put incircle 13 11 pin=center scale=90% +.end +.sprite rbfaceover + .put shadcircle 11 13 pin=center .put outcircle_over 11 11 pin=center .put incircle_over 13 11 pin=center scale=90% +.end +.sprite rbfacedown + .put shadcircle 11 13 pin=center scale=90% .put outcircle_over 11 11 pin=center scale=90% .put incircle_over 13 11 pin=center scale=79% +.end + +.sprite lbface + .put shadcircle 11 13 pin=center .put outcircle 11 11 pin=center .put lincircle 9 11 pin=center scale=90% +.end +.sprite lbfaceover + .put shadcircle 11 13 pin=center .put outcircle_over 11 11 pin=center .put lincircle_over 9 11 pin=center scale=90% +.end +.sprite lbfacedown + .put shadcircle 11 13 pin=center scale=90% .put outcircle_over 11 11 pin=center scale=90% .put lincircle_over 9 11 pin=center scale=79% +.end + +.sprite obface + .put shadcircle 11 13 pin=center .put outcircle 11 11 pin=center .put oincircle 9 11 pin=center scale=90% luminance=50% +.end +.sprite obfaceover + .put shadcircle 11 13 pin=center .put outcircle_over 11 11 pin=center .put oincircle_over 9 11 pin=center scale=90% +.end +.sprite obfacedown + .put shadcircle 11 13 pin=center scale=90% .put outcircle_over 11 11 pin=center scale=90% .put oincircle_over 9 11 pin=center scale=79% +.end + +.button rightbutton + .show rbface as=idle + .show outcircle as=area + .show rbfacedown as=pressed + .show rbfaceover as=hover +.end + +.button leftbutton + .show lbface as=idle + .show outcircle as=area + .show lbfacedown as=pressed + .show lbfaceover as=hover +.end + +.button plusbutton + .show plusface as=idle + .show outcircle as=area + .show plusfacedown as=pressed + .show plusfaceover as=hover +.end + +.button minusbutton + .show minusface as=idle + .show outcircle as=area + .show minusfacedown as=pressed + .show minusfaceover as=hover +.end + +.button oneonebutton + .show obface as=idle + .show outcircle as=area + .show obfacedown as=pressed + .show obfaceover as=hover +.end + +#======================================== frame =========================================================== + +.frame 1 + +.put p1=plusbutton x=width-25-20 y=20 pin=center +.put m1=minusbutton x=width-50-20 y=20 pin=center +.put l1=leftbutton x=width/2-100 y=20 pin=center +.put r1=rightbutton x=width/2+100 y=20 pin=center + +.put o1=oneonebutton x=width-75-20 y=20 pin=center + +.sprite background +.end +.put background + +.sprite vscrollbar + .box vscroll2_shadow line=0 fill=#00000033 width=14 height=100 + .sprite vshadow + .put vscroll2_shadow x=0 y=0 luminance=1.8 + .end + .put vshadow + + .box vscroll2 width=14 height=100 line=1 color=#00000060 fill=grad7 + .sprite vbox + .put vscroll2 x=0 y=0 luminance=1.5 + .end + .put vbox + + .box tick line=1 color=black width=8 height=0 + + .sprite t1 .put tt1=tick y=0 x=3 .end .put t1 + .sprite t2 .put tt2=tick y=0 x=3 .end .put t2 y=50 + .sprite t3 .put tt3=tick y=0 x=3 .end .put t3 + + .button vscrollbutton + .show vscroll2 as=area + .on_press inside: + startDrag(false, _parent.fullwidth-22, 40, + _parent.fullwidth-22, 40+_parent.scrollbaryrange); + _parent.Dragging = "v"; + .end + .on_release: + stopDrag(); + _parent.refreshDrag(); + _parent.Dragging = ""; + .end + .end + .put vscrollbutton +.end + +.sprite hscrollbar + .box hscroll2_shadow width=100 line=0 fill=#00000033 height=14 + .sprite hshadow + .put hscroll2_shadow x=0 y=0 luminance=1.5 + .end + .put hshadow + + .box hscroll2 width=100 height=14 line=1 color=#00000060 fill=grad72 + .sprite hbox + .put hscroll2 x=0 y=0 luminance=1.5 + .end + .put hbox + + .box htick line=1 color=black width=0 height=8 + + .sprite th1 .put tht1=htick x=0 y=3 .end .put th1 + .sprite th2 .put tht2=htick x=0 y=3 .end .put th2 x=50 + .sprite th3 .put tht3=htick x=0 y=3 .end .put th3 + + .button hscrollbutton + .show hscroll2 as=area + .on_press inside: + startDrag(false, 10 , _parent.fullheight-22, + 10+_parent.scrollbarxrange, _parent.fullheight-22); + _parent.Dragging = "h"; + .end + .on_release: + stopDrag(); + _parent.refreshDrag(); + _parent.Dragging = ""; + .end + .end + .put hscrollbutton +.end + +.put hscrollbar y=height-22 x=10 +.put vscrollbar x=width-22 y=40 + +.edittext et width=110 height=20 font=arial size=18pt color=black noselect align=center + +.font dbgarial filename="../doc/Courier.ttf" +#.edittext debugtxt width=width height=20 font=dbgarial size=18pt color=#004000 noselect +#.put debugtxt y=20 + +.put et x=width/2-30 y=8 + +#.swf swf filename=paper5.swf +.sprite swf +.end + +.box f width=100 height=100 line=0 fill=black + +.button areabutton + .show f as=area + .on_press inside: + swf.startDrag(false, left-scrollxrange, top-scrollyrange, left,top); + Dragging = "xy"; + .end + .on_release: + swf.stopDrag(); + Dragging = ""; + .end +.end +.put areabutton x=10 y=40 + +.sprite cf + .put f +.end +.put cliparea=cf x=10 y=40 +.put swf x=10 y=40 + +.action: + + swfwidth = swf._width; + swfheight = swf._height; + + Dragging = ""; + + Stage.scaleMode="noScale"; + Stage.align ="LT"; + + //Stage.showMenu = false; + + fullwidth = Stage.width; + fullheight = Stage.height; + contentwidth = fullwidth - 40; + contentheight = fullheight - 70; + + // move all objects to their proper positions + vscrollbar._x = fullwidth-22; + hscrollbar._y = fullheight-22; + p1._x = fullwidth-25-20 - p1._width/2; + o1._x = fullwidth-50-20 - o1._width/2; + m1._x = fullwidth-75-20 - m1._width/2; + + l1._x = fullwidth/2-100 - l1._width/2; + r1._x = fullwidth/2+100 - r1._width/2; + + et._x = fullwidth/2 - et._width/2; + + //.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; + cliparea._xscale = contentwidth; + cliparea._yscale = contentheight; + swf.setMask(cliparea); + + + lastzoom = 1; + + zoom = 1; + + //debugtxt.text = Stage.width+ " x " + Stage.height; + + setPageNr = function() { + et.text = " "+pagenr+" / "+swf._totalframes; + swf.gotoAndStop(pagenr); + }; + + setNoScrollZoomLevel = function() { + // determine initial zoom level + xscale = contentwidth / swfwidth; + yscale = contentheight / swfheight; + if(xscale < yscale) { + zoom = xscale; + setZoomLevel(); + } else { + zoom = yscale; + setZoomLevel(); + } + }; + + set11ZoomLevel = function() { + zoom = 1.0; + setZoomLevel(); + }; + + swfpos2scrollbars = function() { + if(scrollxrange) { + hscrollbar._x = 10 + (left-swf._x)*scrollbarxrange/scrollxrange; + } else { + hscrollbar._x = 10; + } + if(scrollyrange) { + vscrollbar._y = 40 + (top-swf._y)*scrollbaryrange/scrollyrange; + } else { + vscrollbar._y = 40; + } + }; + setZoomLevel = function() { + + width = contentwidth; + height = contentheight; + left = 10; + top = 40; + + if(swfwidth * zoom < contentwidth) { + width = swfwidth*zoom; + left = 10+(contentwidth-width)/2; + } + if(swfheight * zoom < contentheight) { + height = swfheight*zoom; + top = 40+(contentheight-height)/2; + } + + scrollxrange = swfwidth*zoom-width; + scrollyrange = swfheight*zoom-height; + + hscrollbar._xscale = (contentwidth*width) / (swfwidth*zoom); + vscrollbar._yscale = (contentheight*height) / (swfheight*zoom); + scrollbarxrange = contentwidth - hscrollbar._xscale; + scrollbaryrange = contentheight - vscrollbar._yscale; + if(scrollbarxrange<0) { + scrollbarxrange = 0; + } + if(scrollbaryrange<0) { + scrollbaryrange = 0; + } + + swf._xscale = zoom*100; + swf._yscale = zoom*100; + + focusx = contentwidth/2 - (swf._x-10); + focusy = contentheight/2 - (swf._y-40); + + swf._x = left - focusx * zoom / lastzoom + width/2; + swf._y = top - focusy * zoom / lastzoom + height/2; + + if(swf._x > left) { + swf._x = left; + } else if(swf._x < left-scrollxrange) { + swf._x = left-scrollxrange; + } + if(swf._y > top) { + swf._y = top; + } else if(swf._y < top-scrollyrange) { + swf._y = top-scrollyrange; + } + + swfpos2scrollbars(); + + if(scrollxrange) { + hscrollbar._visible = 1; + } else { + //hscrollbar._visible = 0; + } + if(scrollyrange) { + vscrollbar._visible = 1; + } else { + //vscrollbar._visible = 0; + } + + lastzoom = zoom; + + // update the ruler decorations + + vscrollbar.t1._y = vscrollbar.t2._y - 600.0/vscrollbar._yscale; + vscrollbar.t3._y = vscrollbar.t2._y + 600.0/vscrollbar._yscale; + hscrollbar.th1._x = hscrollbar.th2._x - 600.0/hscrollbar._xscale; + hscrollbar.th3._x = hscrollbar.th2._x + 700.0/hscrollbar._xscale; + + vscrollbar.vshadow._x = vscrollbar.vbox._x + 500/vscrollbar._xscale; + vscrollbar.vshadow._y = vscrollbar.vbox._y + 500/vscrollbar._yscale; + + hscrollbar.hshadow._x = hscrollbar.hbox._x + 500/hscrollbar._xscale; + hscrollbar.hshadow._y = hscrollbar.hbox._y + 500/hscrollbar._yscale; + }; + + pagenr = 1; + setPageNr(); + setNoScrollZoomLevel(); + //set11ZoomLevel(); + + l1.onRelease = function(){ + if(pagenr > 1) { + pagenr = pagenr - 1; + setPageNr(); + } + }; + r1.onRelease = function(){ + if(pagenr < swf._totalframes) { + pagenr = pagenr + 1; + setPageNr(); + } + }; + p1.onRelease = function(){ + if(zoom < 4) { + zoom = zoom + 1; + setZoomLevel(); + } + }; + m1.onRelease = function(){ + if(zoom > 1) { + zoom = zoom - 1; + if(zoom < 1) + zoom = 1; + setZoomLevel(); + } + }; + o1.onRelease = function(){ + setNoScrollZoomLevel(); + }; + refreshDrag = function(){ + if(Dragging == "h") { + swf._x = left + (10-hscrollbar._x)*scrollxrange/scrollbarxrange; + } else if(Dragging == "v") { + swf._y = top + (40-vscrollbar._y)*scrollyrange/scrollbaryrange; + } else if(Dragging == "xy") { + swfpos2scrollbars(); + } + }; + dragrefresh = setInterval(refreshDrag, 20); +.end + +.end diff --git a/swfs/rfxview.swf b/swfs/rfxview.swf new file mode 100644 index 0000000000000000000000000000000000000000..391ab20ad3e497f8ab4cac8d0388756844360b36 GIT binary patch literal 4541 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 b8SQjBa%^R1Djg@lvZ*Ta+sOX`0*XcZ`DW@h literal 0 HcmV?d00001 -- 1.7.10.4