flash on 2012-7-9

by mutantleg
♥0 | Line 71 | Modified 2012-07-09 17:23:46 | 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/ydsC
 */

package {
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.display.Graphics;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
       
       public var gridw:Number = 64;
       public var gridh:Number = 48;
       public var worldw:Number = Math.floor(500 / gridw);
       public var worldh:Number = Math.floor(400 / gridh);
       public var sel:Sprite;
       public var vecGrid:Vector.<int>;
       
       public var ship:Sprite;
       public var destx:Number = 0;
       public var desty:Number = 0;
       
        public function FlashTest() {
            // write as3 code here..
       
           var num:int;
           num = worldw * worldh;
           vecGrid = new Vector.<int>(num, false);
       
           var g:Graphics;
           sel = new Sprite();
           g = sel.graphics;
           g.clear();
           g.lineStyle(3,0xFF0000);
           g.drawRect(0,0,gridw,gridh);           
       
           ship = new Sprite();
           g = ship.graphics;
           g.clear();
           g.lineStyle(2, 0x0000FF);
           g.drawEllipse(0, 0,gridw,gridh);
       
           graphics.clear();
           graphics.lineStyle(1,0);
           
           var i:int;
           var k:int;
           
           for (i = 0; i < worldh; i++)
           {
               for (k =0; k < worldw; k++)
               {
                     graphics.drawRect(k*gridw,i*gridh,gridw,gridh);
               }//nextk
           }//nexti
           
           addChild(sel);
           addChild(ship); 
            
           stage.addEventListener(Event.ENTER_FRAME, onEnter);
           stage.addEventListener(MouseEvent.CLICK, onClick);
        }//ctor
        
        public function placeSel(sx:int, sy:int):Boolean
        {
            if (sx < 0) { return false; }
            if (sy < 0) { return false; }
            if (sx >= worldw) { return false; }
            if (sy >= worldh) { return false; }
            
            sel.x = sx * gridw;
            sel.y = sy * gridh;
            
            return true;
        }//placesel
        
        public function onClick(e:MouseEvent):void
        {
            destx = sel.x;
            desty = sel.y;
        }//onclick
        
        public function onEnter(e:Event):void
        {
            var mx:Number = Math.floor(stage.mouseX / gridw);
            var my:Number = Math.floor(stage.mouseY / gridh);
            
            sel.visible = placeSel(mx,my);
            
            ship.x += (destx - ship.x) * 0.2;
            ship.y += (desty - ship.y) * 0.2;
            
        }//onenter
        
    }//classend
}