flash on 2016-6-29
♥0 |
Line 75 |
Modified 2016-06-29 06:20:27 |
MIT License
archived:2017-03-20 16:23:29
ActionScript3 source code
/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/8eDd
*/
package {
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
var i:int; var a:xRect;
for (i=0;i<16;i+=1)
{
a = new xRect();
a.cx = Math.random()*465;
a.cy = Math.random()*465;
a.cw = 32 + Math.random()*64;
a.ch = 16 + Math.random()*64;
vecRect.push(a);
}//nexti
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var vecRect:Vector.<xRect> = new Vector.<xRect>(0,false);
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2,0);
var i:int; var num:int; var a:xRect;
num = vecRect.length;
for(i=0;i<num;i+=1)
{
a = vecRect[i];
graphics.beginFill(0x808080,1);
graphics.drawRect(a.cx,a.cy,a.cw,a.ch);
graphics.endFill();
}//nexti
var mx:Number; var my:Number;
mx = stage.mouseX; my = stage.mouseY;
var minx:Number = 0;
var maxx:Number = 465;
var miny:Number = 0;
var maxy:Number = 465;
var r:Number;
r = 8;
var ms:Number; ms =32;
minx = mx - ms;
maxx = mx + ms;
miny = my - ms;
maxy = my + ms;
r = 16;
for(i=0;i<num;i+=1)
{
a = vecRect[i];
if ( (my+r < a.cy || my-r > a.cy+a.ch)==false)
{
if (a.cx >mx && a.cx < maxx) { maxx = a.cx; }
if (a.cx+a.cw < mx && a.cx+a.cw > minx){ minx = a.cx+a.cw;}
}
if ( (mx+r < a.cx || mx-r > a.cx+a.cw)==false)
{
if (a.cy >my && a.cy < maxy) { maxy = a.cy; }
if (a.cy+a.ch < my && a.cy+a.ch > miny){ miny = a.cy+a.ch;}
}
}//nexti
graphics.drawCircle(mx,my,8);
graphics.moveTo(minx, my);
graphics.lineTo(maxx, my);
graphics.moveTo(mx, miny);
graphics.lineTo(mx, maxy);
graphics.drawRect(minx, miny, maxx-minx,maxy-miny);
}//onenter
}//classend
}
internal class xRect
{
public var cx:Number = 0;
public var cy:Number = 0;
public var cw:Number = 0;
public var ch:Number = 0;
}//xrect