flash on 2014-5-11

by maxs.maxs.90
♥0 | Line 118 | Modified 2014-06-14 02:52:48 | 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/foTq
 */

package {
    import flash.text.*;
    import flash.filters.GlowFilter;
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
    public class FlashTest extends Sprite {
        var coord:Array = new Array();
        var face:Array = new Array(1,0,3,2, 4,5,6,7, 0,4,7,3, 2,6,5,1, 3,7,6,2, 1,5,4,0);
        var z_ar:Array = new Array();
        var color :Array = new Array(0xff0000,0x0Dff00,0xff7b00,0x00ff8c,0x0000ff,0xff00ff);
        var color1:Array = new Array(0xff2525,0x6bff63,0xffaf64,0x6fffbe,0x2525ff,0xff25ff);
        var color2:Array = new Array(0xff4C4C,0xAbffA6,0xffcc9c,0xa8ffd8,0x4C4Cff,0xff4Cff);
        //
        var tex:Array = new Array();;
        //
        var tri:Shape = new Shape();
        var point:Shape = new Shape();
        //
        var st:Number = 5;
        var w:Number = 16 * st;
        var rotX:int;
        var rotY:int;
        var speed:Number = 3;
        var Yx:Number = stage.stageWidth /2;
        var Yy:Number = stage.stageHeight /2;
        //
        var colF:uint = 0xffffff;
        //
        var line_:Boolean = false;
        var glow:GlowFilter = new GlowFilter(0x333333,1,20,20,1);
        //
        var colCode:Array = new Array(
        6,6,6,6,6,0,0,0,0,0,0,6,6,6,6,6,
        6,6,6,0,0,1,1,7,7,7,7,0,0,6,6,6,
        6,6,0,1,1,1,1,8,8,8,8,1,1,0,6,6,
        6,0,1,1,1,1,9,9,9,9,9,7,1,1,0,6,
        6,0,1,1,1,9,9,1,1,1,1,9,7,1,0,6,
        0,7,8,9,9,9,1,1,1,1,1,1,9,8,7,0,
        0,7,1,1,9,9,1,1,1,1,1,1,9,8,7,0,
        0,1,1,1,1,9,1,1,1,1,1,1,9,8,1,0,
        0,1,1,1,1,8,8,1,1,1,1,8,8,1,1,0,
        0,7,1,1,7,7,7,7,7,7,7,7,7,1,1,0,
        0,7,7,7,0,0,0,0,0,0,0,0,7,7,1,0,
        6,0,0,0,1,1,0,1,1,0,1,1,0,0,0,6,
        6,6,0,1,1,1,0,1,1,0,1,1,1,0,6,6,
        6,6,0,1,1,1,1,1,1,1,1,1,1,0,6,6,
        6,6,6,0,1,1,1,1,1,1,1,1,0,6,6,6,
        6,6,6,6,0,0,0,0,0,0,0,0,6,6,6,6);
        public function FlashTest() {
            // write as3 code here..
            for(var i:int = 0; i < 8; i ++){
                    var x_:int = (i == 0 || i == 1 || i == 4 || i == 5) ? (-w + Yx) : (w + Yx);
                    var y_:int = (i == 0 || i == 1 || i == 2 || i == 3) ? (-w + Yy) : (w + Yy);
                    var z_:int = (i == 0 || i == 3 || i == 4 || i == 7) ? -w : w;
                    //
                    coord.push(x_,y_);
                    z_ar.push(z_);
            }
            //
            addChild(point);
            addChild(tri);
            //
            BMD();
            addEventListener(Event.ENTER_FRAME,fr);
            stage.addEventListener(MouseEvent.CLICK,cl);
            //
        }
        function cl(event:MouseEvent){
            line_ = (line_) ? false : true;
        }
        function fr(event:Event){
            rotX = (mouseY < Yy) ? -speed : speed;
            rotY = (mouseX < Yx) ? -speed : speed;
            //
            draw();
        }
        function draw(){
            for(var i:int = 0; i < 8; i ++){
                point.x = coord[(i * 2) + 0];
                point.y = coord[(i * 2) + 1];
                point.z = z_ar[i];
                //
                point.transform.matrix3D.appendTranslation(-Yx,-Yy,0);
                point.transform.matrix3D.appendRotation(rotX,Vector3D.X_AXIS);
                point.transform.matrix3D.appendRotation(rotY,Vector3D.Y_AXIS);
                point.transform.matrix3D.appendTranslation(Yx,Yy,0);
                //
                coord[(i * 2) + 0] = point.x;
                coord[(i * 2) + 1] = point.y;
                z_ar[i] = point.z;
            }
            //
            tri.graphics.clear();
            if(line_) tri.graphics.lineStyle(3,0x000000);
            //
            for(i = 0; i < 6; i ++){
                tri.graphics.beginBitmapFill(tex[i]);
                tri.graphics.drawTriangles( 
                Vector.<Number>([
                //
                coord[ (face[(i * 4) + 0] * 2) + 0 ], coord[ (face[(i * 4) + 0] * 2) + 1 ],
                coord[ (face[(i * 4) + 1] * 2) + 0 ], coord[ (face[(i * 4) + 1] * 2) + 1 ],
                coord[ (face[(i * 4) + 2] * 2) + 0 ], coord[ (face[(i * 4) + 2] * 2) + 1 ],
                coord[ (face[(i * 4) + 3] * 2) + 0 ], coord[ (face[(i * 4) + 3] * 2) + 1 ] ]),
                //
                Vector.<int>([1,0,3, 3,2,1]),
                Vector.<Number>([0,0, 0,1, 1,1, 1,0]),
                TriangleCulling.NEGATIVE);
                tri.graphics.endFill();  
                tri.filters = [glow];  
            }
        }
        function BMD(){
            var g:int = 0;
            for(var i:int = 0; i < 6; i ++){
               tex[i] = new BitmapData(w,w,false);
                //
                for(var y_:int = 0; y_ < 16; y_ ++){
                    for(var x_:int = 0; x_ < 16; x_ ++){
                        tex[i].fillRect(new Rectangle( (st * x_), (st * y_), st, st),
                        (colCode[g] == 0) ? 0x000000 :
                        (colCode[g] == 1) ? 0xffffff :
                        (colCode[g] == 9) ? color2[i]:
                        (colCode[g] == 8) ? color1[i]:
                        (colCode[g] == 7) ? color[i] : colF);
                        //
                        g ++;
                    }    
                }
                //
                var bitM:Bitmap = new Bitmap(tex[i]);
                addChild(bitM);
                bitM.x = ((Yx * 2) / 6) * i;
                //
                g = 0;
            }
           
        }

    }
}