flash on 2013-7-25

by mutantleg
♥0 | Line 214 | Modified 2013-07-25 20:19:02 | 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/gMxA
 */

package {
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.events.Event;
    import flash.utils.Dictionary;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            /*
            var pic:Bitmap;
            var bm:BitmapData;
            bm = new BitmapData(4,4,false, 0);
            pic = new Bitmap(bm);
            addChild(pic);
            pic.scaleX = 16;
            pic.scaleY = 16;
            
            var c:uint;
            
            c = 0xFF;
            
            var vecPic:Vector.<uint> = Vector.<uint>(
            [0,0,0,c,
             0,0,c,c,
             0,c,c,c,
             c,c,c,c]);
            
            bm.setVector(bm.rect,vecPic); 
            */
            
            canvas = new BitmapData(128, 128, false, 0);
            pic = new Bitmap(canvas);
            addChild(pic);
            pic.scaleX =3;
            pic.scaleY =3;
            
            
            initTile();
            
            var num:int;
            var i:int;
            
            mwidth = 32;
            mheight = 32;
            
            num = mwidth * mheight;
            
            vecGrid = new Vector.<int>(num, false);
            
            for (i = 0; i < num; i++)
            {
                vecGrid[i] = Math.random() * 2;
            }//nexti
            
            stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        
        public var tempRect:Rectangle = new Rectangle();
        public var tempPnt:Point = new Point();
        public function onEnter(e:Event):void
        {
            canvas.lock();
             canvas.fillRect(canvas.rect, 0);
         
             var c:uint;   
             var i:int;
             var k:int;
             var t:int;
             var yt:int;
             var rect:Rectangle = tempRect;
             var pnt:Point = tempPnt;
             
             rect.width = 4;
             rect.height = 4;
         
             c = 0x00800000;
             
             var w:int;
         
            
            for (i = 0; i < mheight; i++)
            {
                yt = i * mwidth;
                for (k = 0; k < mwidth; k++)
                {
                    t = vecGrid[yt+k];
                    
                    
                    if (t > 0) {
                           rect.x = k * 4;
                           rect.y = i * 4;
                           canvas.fillRect(rect, c);
                          }
                          
                          
                    if (t > 0)       
                    {
                          //   1 
                          // 2 X 4
                          //   8     
            
                        w = 0;
                     //   if (t == 0) { w+=16;}
                        if (i == 0) { w += 1; }
                        else { if (vecGrid[yt+k-mwidth] > 0) { w += 1;} }
                        if (i == (mheight - 1)) { w+= 8;}
                        else { if (vecGrid[yt+k+mwidth] > 0) { w += 8;} }                
                        if (k == 0) { w += 2; }
                        else { if (vecGrid[yt+k-1] > 0) { w+=2;}}
                        if (k== (mwidth-1)) { w+=4;}
                        else { if (vecGrid[yt+k+1] > 0) {w+=4;} }
                                   
                        var m:BitmapData;
                        m = dictTile[w];
                        if (m == null) { continue; }    
                        
                        pnt.x = k * 4;
                        pnt.y = i * 4;       
                                        
                        canvas.copyPixels(m, m.rect, pnt);                
                     }//endif      
                     
                }//nextk
            }//nexti
            
            canvas.unlock();
        }//onenter
        
        
        
        public var canvas:BitmapData;
        public var pic:Bitmap;
        public var vecGrid:Vector.<int>;
        public var mwidth:int = 0;
        public var mheight:int = 0;
        
        
        
        public var dictTile:Dictionary;
        
        public function getPic(vec:Vector.<uint>):BitmapData
        {
            var a:BitmapData;
            a = new BitmapData(4,4,false,0);
            a.setVector(a.rect, vec);
            return a;
        }//getpic
        
        public function initTile():void
        {
            var t:int;            
            var c:uint;
            var vecPic:Vector.<uint>;
            var a:BitmapData;
            
            dictTile = new Dictionary();
            
            c = 0xFF;
    
            //   1 
            // 2 X 4
            //   8      
    
    
    
    
    
    
    /*
           t = 1+ 2+ 4 + 8+16;
                    
            vecPic= Vector.<uint>(
            [c,0,0,c,
             0,0,0,0,
             0,0,0,0,
             c,0,0,c]);
    
            dictTile[t] = getPic(vecPic); 
*/
    
    
    
    
    
    
    
    
    
    
            t = 0;
                    
            vecPic= Vector.<uint>(
            [0,c,c,0,
             c,c,c,c,
             c,c,c,c,
             0,c,c,0]);
    
            dictTile[t] = getPic(vecPic); 

    
             t = 1+ 2+ 4 + 8;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,c,
             c,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 

    
            t = 4 + 8;
                    
            vecPic= Vector.<uint>(
            [0,0,0,c,
             0,0,c,c,
             0,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 

             t = 2 + 8;
                    
            vecPic= Vector.<uint>(
            [c,0,0,0,
             c,c,0,0,
             c,c,c,0,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 

    
             t = 1 + 2;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,0,
             c,c,0,0,
             c,0,0,0]);
    
            dictTile[t] = getPic(vecPic); 

           t = 1 + 4;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             0,c,c,c,
             0,0,c,c,
             0,0,0,c]);
    
            dictTile[t] = getPic(vecPic); 





            t = 4;
                    
            vecPic= Vector.<uint>(
            [0,0,0,c,
             0,0,c,c,
             0,0,c,c,
             0,0,0,c]);
    
            dictTile[t] = getPic(vecPic); 
         
         
            t = 2;
                    
            vecPic= Vector.<uint>(
            [c,0,0,0,
             c,c,0,0,
             c,c,0,0,
             c,0,0,0]);
    
            dictTile[t] = getPic(vecPic); 
          
         
            t = 2+4;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,c,
             c,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 
            
            t = 1;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             0,c,c,0,
             0,0,0,0,
             0,0,0,0]);
    
            dictTile[t] = getPic(vecPic); 
            
            
             t = 8;
                    
            vecPic= Vector.<uint>(
            [0,0,0,0,
             0,0,0,0,
             0,c,c,0,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 
           
            
            
            t = 1+8;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,c,
             c,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 
           
            t = 1+8+2;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,c,
             c,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 
            
             t = 1+8+4;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,c,
             c,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 
           
            
             t = 2+4+1;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,c,
             c,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 
           
           
            t = 2+4+8;
                    
            vecPic= Vector.<uint>(
            [c,c,c,c,
             c,c,c,c,
             c,c,c,c,
             c,c,c,c]);
    
            dictTile[t] = getPic(vecPic); 
           
        }//inittile
        
        
        
        
    }//classend
}