flash on 2016-6-29

by mutantleg
♥0 | Line 75 | Modified 2016-06-29 06:20:27 | MIT License
play

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