# http://www.quiss.org/swftools/ .flash bbox=500x350 version=6 name="scrollbar.swf" compress background=#CCCCCC .box z width=16 height=16 color=red fill=white .edittext info text="###" color=blue width=40 height=40 multiline variable=MySB.val .edittext log text="" color=blue width=205 height=100 multiline wordwrap border .edittext edi text="" color=blue width=205 height=300 multiline wordwrap border .sprite MySB .sprite drag_s .button curs_b .show z as=area .show z as=idle .show z as=hover .show z as=pressed .on_press: drag_s._x = 0; Dragging= true; startDrag(this,true,_parent.Up_b._y+17,0 ,_parent.Down_b._y-17,0 ); idInt_Drag=setinterval(_parent.Revalue,20); .end .on_release: Dragging=false; clearinterval(idInt_Drag); stopDrag(); _parent.Revalue(); .end .end # .put curs_b 0 0 .end #// drag_s sprite because button is not dragable .button Up_b .show z as=area .show z as=idle .show z as=hover .show z as=pressed .on_press: Up_pressed(); function Up_pressed() { mx=_root.edi.maxscroll; if ( val > mx ) val=mx ; if (val > mini ) val=val-incv; if (val < mini ) val= mini; pos(); } idInt_Up_pressed = setinterval(Up_pressed,100); .end .on_release: clearinterval(idInt_Up_pressed); .end .end .button Down_b .show z as=area .show z as=idle .show z as=hover .show z as=pressed .on_press: Down_pressed(); function Down_pressed() { mx=_root.edi.maxscroll; if (val < mx) val=val+incv; if (val > mx) val=mx; pos(); } idInt_Down_pressed = setinterval(Down_pressed,100); .end .on_release: clearinterval(idInt_Down_pressed); .end .end #but .put Up_b 1 1 .put Down_b 1 283 .put drag_s 1 0 .action: m=_root.edi; function Init() { _root.Down_b._y=m._height-17; val=mini; pos(); revalue(); } function pos() { drag_s._y = ((val)/(m.maxscroll)*(m._height-17))+17; m.scroll=val+1; _root.log.text=" ms="+m.maxscroll+" s="+m.scroll+" "+"y="+Drag_s._y+" "; } function Revalue() { var v=(((Drag_s._y)/(m._height-17))*(m.maxscroll)); val=int(v/incv)*incv; m.scroll=val+1; if (dragging=="false") calpos(); } .end #action .end # mySB .put MySB 220 10 .put edi 10 10 .put log 10 320 .put info 220 310 .action: MySB.mini=0; var lv=new LoadVars(); MySB.incv=20; lv.onData = function(src) { edi.text=src; MySB.Init(); }; lv.load("visio.txt"); // params for MySB sprite // MySB.BarHeight=300; .end .end # flash