flash on 2015-2-8

by mutantleg
♥0 | Line 85 | Modified 2015-02-08 03:21:12 | 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/c5Y3
 */




package {
    import flash.events.MouseEvent;
    import flash.geom.Matrix;
    import flash.events.Event;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            pic = new BitmapData(16, 16, false, 0);
            
            var i:int;
            for (i = 0; i < 64; i++)
            {
             pic.setPixel(Math.random()*pic.width,
             Math.random()*pic.height, 0xFF0000); 
             
             pic.setPixel(i, pic.height-1,0xFF0000);
            }//nexti
            
            stage.addEventListener(MouseEvent.MOUSE_DOWN, onMdown);
            stage.addEventListener(MouseEvent.MOUSE_UP, onMup);
            stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public function onMdown(e:MouseEvent):void { mdown = 1; }
        public function onMup(e:MouseEvent):void { mdown = 0; }        
        public var mdown:int = 0;
        
        public var pic:BitmapData;
        public var mat:Matrix = new Matrix();
        
        public var gt:int = 0;
        
        public function onEnter(e:Event):void
        {
            graphics.clear();

            var cw:Number; var ch:Number;
            var mx:Number; var my:Number;
            var tx:int; var ty:int;            

            cw = 32; ch = 32;

            mx = stage.mouseX; my = stage.mouseY;
            tx = Math.floor(mx/cw);  ty = Math.floor(my/ch);
            
            mat.a = cw;        mat.d = ch;

            if (mdown > 0) { pic.setPixel(tx,ty, 0xFF); }
            

            gt += 1;
            if (gt % 4 == 0) { upTile(); }

            graphics.beginBitmapFill(pic, mat,false, false);
             graphics.drawRect(0,0,465,465);
            graphics.endFill();

            graphics.lineStyle(2, 0x00FF00,0.5);
            graphics.drawRect(tx*cw,ty*ch,cw,ch);
            
        }//onenter

        public function upTile():void
        {
          var i:int; var k:int;
          var ei:int; var ek:int;   
          ei = pic.height;  
          ek = pic.width;   
           
           
          var c:int; 
          var uc:int;
           
          for (i = ei-2; i > -1; i -=1)
          {
            for (k = 0; k < ek; k++)
            {   

              c = pic.getPixel(k, i);
              if (c <= 0 || c >= 256) { continue; }

              uc = pic.getPixel(k, i+1);
              if (uc <= 0)
              {
                pic.setPixel(k,i+1,c);
                pic.setPixel(k,i, 0);    
                continue;
              }
              
            
              if (k < ek-2)
              if (pic.getPixel(k+1, i) <=0&& pic.getPixel(k+1, i+1) <= 0)
              {
                pic.setPixel(k+1,i+1,c);
                pic.setPixel(k,i, 0);    
                continue;
              }

              if (k > 1)
              if (pic.getPixel(k-1, i) <=0 && pic.getPixel(k-1, i+1)<= 0)
              {
                pic.setPixel(k-1,i+1,c);
                pic.setPixel(k,i, 0);    
                continue;
              }
 
 /*
              if (pic.getPixel(k-1, i) == 0xFF)             
              if (pic.getPixel(k+1, i) <=0)
              {
                pic.setPixel(k+1,i,c);
                pic.setPixel(k,i, 0);    
               // k+=2;
                continue;
              }
   
              if (pic.getPixel(k+1, i) == 0xFF)             
              if (pic.getPixel(k-1, i) <=0)
              {
                pic.setPixel(k-1,i,c);
                pic.setPixel(k,i, 0);    
                continue;
              }

              */
            }//nextk  
          }//nexti  
            
        }//uptile
        
        
    }//classend
}