flash on 2014-5-5

by maxs.maxs.90
♥0 | Line 99 | Modified 2014-05-08 04:39:07 | MIT License
play

ActionScript3 source code

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

package {
    import flash.geom.*;
    import flash.events.*;
    import flash.display.*;
    public class FlashTest extends Sprite {
        //
        var colCode:Array = new Array(
        2,2,2,2,3,3,1,2,2,1,3,3,2,2,2,2, 
        2,1,1,1,2,3,1,1,1,1,3,2,1,1,1,2, 
        2,1,1,2,3,3,3,4,4,3,3,3,2,1,1,2, 
        2,1,2,3,3,3,3,4,4,3,3,3,3,2,1,2, 
        3,2,3,3,3,3,3,4,4,3,3,3,3,3,2,3, 
        3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3, 
        1,1,3,3,3,2,5,1,1,5,2,3,3,3,1,1, 
        2,1,4,4,4,2,5,5,5,5,2,4,4,4,1,2, 
        2,1,4,4,4,2,5,5,5,5,2,4,4,4,1,2, 
        1,1,3,3,3,2,1,5,5,1,2,3,3,3,1,1, 
        3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3, 
        3,2,3,3,3,3,3,4,4,3,3,3,3,3,2,3, 
        2,1,2,3,3,3,3,4,4,3,3,3,3,2,1,2, 
        2,1,1,2,3,3,3,4,4,3,3,3,2,1,1,2, 
        2,1,1,1,2,3,1,1,1,1,3,2,1,1,1,2, 
        2,2,2,2,3,3,1,2,2,1,3,3,2,2,2,2);
        //
        var coord:Vector.<Number> = new Vector.<Number>();
        var uv:Vector.<Number> = new Vector.<Number>();
        //
        var line_:Boolean = true;
        var st:Number = 7;
        var w:Number = st * 8;
        var fl:Number = 200;
        var rotX:int = 0;
        var rotY:int = 0;
        var tex:BitmapData = new BitmapData(16 * st,16 * st,false);
        var triangles:Sprite = new Sprite();
        //
        public function FlashTest() {
            // write as3 code here..
            addChild(triangles);
            triangles.x = stage.stageWidth / 2;
            triangles.y = stage.stageHeight / 2;
            triangles.z = 1;
            BM();
            addEventListener(Event.ENTER_FRAME,fr);
            addEventListener(MouseEvent.CLICK,cl);
            //
        }
        function fr(event:Event){
            //
            vr();
            //
            rotY = (720 / stage.stageWidth) * mouseX;
            rotX = (720 / stage.stageHeight) * mouseY;
        }
        function BM(){
            var g:int = 0;
            for(var i:int = 0; i < 16; i ++){
                for(var j:int = 0; j < 16; j ++){
                    tex.fillRect(new Rectangle(j * st,i * st,st,st),
                    (colCode[g] == 1) ? 0xacacac :
                    (colCode[g] == 2) ? 0x909090 : 
                    (colCode[g] == 3) ? 0x6a6a6a : 
                    (colCode[g] == 4) ? 0x626262 : 0xfd2e7e);
                    g ++;
                }    
            }
        }
        function vr(){
            coord.length = 0;
            uv.length = 0;
            for(var i:int = 0; i < 2; i ++){
                for(var j:int = 0; j < 4; j ++){
                    var x_:int = Math.cos( ((90 * j) + rotY + 45) * (Math.PI / 180) ) * Math.sqrt((w * w) + (w * w)); 
                    var z_:int = Math.sin( ((90 * j) + rotY + 45) * (Math.PI / 180) ) * Math.cos( rotX * (Math.PI / 180) ) * Math.sqrt((w * w) + (w * w));
                    var y_:int = Math.sin( rotX * (Math.PI / 180) ) * w;
                    var t_ = fl / (fl + z);
                    coord.push(x_);
                    coord.push(
                    (i == 0) ? -w : w
                    );
                    uv.push(
                    (j == 0) ? 0 :
                    (j == 2) ? 1 :
                    (j == 3) ? 0 : 1
                    );
                    uv.push(
                    (j == 0) ? 0 :
                    (j == 2) ? 0 :
                    (j == 3) ? 1 : 1
                    );
                    uv.push(t_);
                }
            }
            //
            triangles.graphics.clear();
            if(line_) triangles.graphics.lineStyle(3,0x0066ff);
            triangles.graphics.beginFill(0xff9900);
            triangles.graphics.beginBitmapFill(tex);
            triangles.graphics.drawTriangles(coord,
            Vector.<int>([0,1,2, 0,3,2, 4,5,6, 4,7,6, 4,0,3, 3,7,4, 2,1,5, 2,5,6, 7,3,2, 2,6,7, 1,0,4, 4,5,1]),           
            uv,TriangleCulling.NEGATIVE);
            triangles.graphics.endFill();
        }
        function cl(event:MouseEvent){
            line_ = (line_) ? false : true;
        }

    }
}