From: kramm Date: Fri, 11 Jul 2008 08:53:44 +0000 (+0000) Subject: swfc based viewer for pdf2swf swfs X-Git-Tag: buttons-working~89 X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=commitdiff_plain;h=0a6a5f3e53542f43512368ae53e73d939485363c swfc based viewer for pdf2swf swfs --- 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 0000000..391ab20 Binary files /dev/null and b/swfs/rfxview.swf differ