#CopyLeft http://www.ep-ars.net .flash filename="libre.swf" bbox=300x300 version=8 compress fps=12 .gradient transparent_red radial r=50: 0% #ff0000ff 50% #ff0000ff 100% #ff000000 .end .gradient transparent_white radial r=50: 0% #ffffffff 50% #ffffffff 100% #ffffff00 .end .circle circle1 r=50 color=#00000000 fill=transparent_white .circle circle2 r=5 color=#00000000 fill=#00FF00 .sprite circle_sprite .frame 1 .put circle1 pin=center .frame 2 .action: gotoAndPlay(1); .end .end .sprite disk .frame 1 .put move=circle_sprite #.put circle2 pin=center .frame 2 .action: move.useHandCursor=1; var dist = Math.sqrt(_xmouse*_xmouse+_ymouse*_ymouse); var R = 50; if (_level0._xmouse>R && _level0._xmouse<300-R && _level0._ymouse>R && _level0._ymouse<300-R) touch_border=false; else touch_border=true; if (dist < R && !touch_border) { move.circle1._x=((_xmouse-move.circle1._x)/dist)*(dist-R); move.circle1._y=((_ymouse-move.circle1._y)/dist)*(dist-R); //~ //good one : //~ move.circle1._x=-((_xmouse)/dist)*Math.abs(dist-R); //~ move.circle1._y=-((_ymouse)/dist)*Math.abs(dist-R); } else { if (move.circle1._x != 0) move.circle1._x=0; if (move.circle1._y != 0) move.circle1._y=0; } //Mouse.hide(); gotoAndPlay(1); // trace("x:"+_xmouse+",y:"+_ymouse+",step:"+step); .end .end .action: var matrix_size = 8; var step = 300/(matrix_size-1); for (var i=0; i