flash on 2011-2-11

by feeyar
♥0 | Line 149 | Modified 2011-02-18 19:35:50 | MIT License
play

ActionScript3 source code

/**
 * Copyright feeyar ( http://wonderfl.net/user/feeyar )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/d7sJ
 */

package {
    import flash.ui.Keyboard;
    import flash.events.KeyboardEvent;
    import flash.display.Graphics;
    import flash.display.Sprite;
    [SWF (backgroundColor="0x000000")]
    public class FlashTest extends Sprite {
        public static const GRID_WIDTH:Number = 30;
        public function FlashTest() {
            // write as3 code here..
            drawBlocks();
            configEventListenners();
        }
        
        private var gridLayer:Sprite = new Sprite();
        private var blockLyaer:Sprite = new Sprite();
        private var blocks:Array = [];
        private var selectedBlocks:Array = [];
        private var startX:Number = 50;
        private var startY:Number = 50;
        
        //_currentXindex
        private var _currentXindex:int = -1;
        public function get currentXindex():int {
            return _currentXindex;
        }
        public function set currentXindex(value:int):void {
            if(value>=0&&value<9){
                this._currentXindex = value;
            }
        }
        //_currentYindex
        private var _currentYindex:int = -1;
        public function get currentYindex():int {
            return _currentYindex;
        }
        public function set currentYindex(value:int):void {
            if(value>=0&&value<9){
                this._currentYindex = value;
            }
        }
        
        private function drawBlocks():void {
            for(var i:int = 0 ;i< 9;i++){
                for(var j:int = 0;j<9;j++){
                    var color:uint = getColor(i,j);
                    if(color != 0x000000){
                        var block:Block = new Block(color);
                        block.xindex = i;
                        block.yindex = j;
                        block.x = startX + i*(GRID_WIDTH-1);
                        block.y = startY + j*(GRID_WIDTH-1);
                        blocks.push(block);
                        addChild(block); 
                    }
                }
            }
        }
        private function configEventListenners():void {
            stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUpHandler);
        }
        private function getColor(i:int,j:int):uint {
            var color:uint = 0x000000;
            if(i>=3&&i<6&&j<3) color = 0xffcc00;
            if(i>=3&&i<6&&j>=3&&j<6) color = 0xffffff;
            if(i>=3&&i<6&&j>=6) color = 0xffff00;
            if(i<3&&j>=3&&j<6) color = 0xC60000;
            if(i>=6&&j>=3&&j<6) color = 0x3399ff;
            return color;
        }
        private function onKeyUpHandler(e:KeyboardEvent):void {
            switch(e.keyCode){
                case Keyboard.LEFT:
                    this.currentXindex--;
                    this.currentYindex = -1;
                    selectByLine(currentXindex,-1);
                    break;
                case Keyboard.RIGHT:
                    this.currentXindex++;
                    this.currentYindex = -1;
                    selectByLine(currentXindex,-1);
                    break;
                case Keyboard.UP:
                    this.currentYindex--;
                    this.currentXindex = -1;
                    selectByLine(-1,currentYindex);
                    break;
                case Keyboard.DOWN:
                    this.currentYindex++;
                    this.currentXindex = -1;
                    selectByLine(-1,currentYindex);
                    break;
                case 65://a
                    moveLine("x",-1);
                    break;
                case 83://s
                    moveLine("y",1);
                    break;
                case 68://d
                    moveLine("x",1);
                    break;
                case 87://w 
                    moveLine("y",-1);
                    break;
            }
        }
        private function moveLine(arg:String,n:int):void {
            if(selectedBlocks.length <= 3){
                
            }else {
                for each(var block:Block in selectedBlocks){
                    block[arg] += (GRID_WIDTH -1)*3*n;
                }
            }
        }
        private function selectByLine(x:int,y:int):void {
            selectedBlocks = [];
            for each(var block:Block in blocks){
                if(block.xindex == x || block.yindex == y){
                    block.selected = true;
                    selectedBlocks.push(block);
                }else {
                    block.selected = false;
                }
            }
        }
        private function layoutByX(index:int):void {
            
        }
    }
}
import flash.filters.ColorMatrixFilter;
import flash.display.Graphics;

import flash.display.Sprite;

class Block extends Sprite {
    public function Block(color:uint = 0):void {
        this.color = color;
        build();
    }
    private var color:uint;
    public var xindex:uint = 0;
    public var yindex:uint = 0;
    
    public function set selected(value:Boolean):void {
        if(value){
            this.alpha = .8;
        }else{
            this.alpha = 1;
        }
    }
    
    private function build():void {
        var g:Graphics = this.graphics;
        g.beginFill(color);
        g.lineStyle(1,0xcccccc);
        g.drawRect(0,0,30,30);
        g.endFill();
    }
}