flash on 2014-5-9

by maxs.maxs.90
♥0 | Line 117 | Modified 2014-05-11 06:46:54 | 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/tY2z
 */

package {
    import flash.filters.GlowFilter;
    import flash.geom.*;
    import flash.display.*;
    import flash.events.*;
    public class FlashTest extends Sprite {
        var triangles:Shape = new Shape();
        var tes:Shape = new Shape();
        var cof:Number = 7;
        var line_:Boolean = false;
        var w:Number = (cof * 16);
        var w2:Number = w / 2;
        var coord:Vector.<Number> = new Vector.<Number>();
        var uv:Vector.<Number> = new Vector.<Number>();
        var tex:BitmapData;
        var Yw:Number = stage.stageWidth;
        var Yh:Number = stage.stageHeight;
        var rotX:int;
        var rotY:int;
        var speed:Number = 3;
        var fl:Number = 200;
        var fil:GlowFilter = new GlowFilter(0xfd2e7e,1,50,50,1);
        //
        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);
        public function FlashTest() {
            // write as3 code here..
            addChild(triangles);
            addChild(tes);
            //
            point(-w2,-w2, w2,0);
            point(-w2,-w2,-w2,1);
            point( w2,-w2,-w2,2);
            point( w2,-w2, w2,3);
            //
            point(-w2, w2, w2,4);
            point(-w2, w2,-w2,5);
            point( w2, w2,-w2,6);
            point( w2, w2, w2,7); 
            //
            BD();
            addEventListener(Event.ENTER_FRAME,fr);
            addEventListener(MouseEvent.CLICK,cl);
        }
        function BD(){
            tex = new BitmapData(w,w,false);
            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 * cof,i * cof,cof,cof),
                    (colCode[g] == 1) ? 0xacacac :
                    (colCode[g] == 2) ? 0x909090 :
                    (colCode[g] == 3) ? 0x6a6a6a :
                    (colCode[g] == 4) ? 0x626262 : 0xfd2e7e);
                    g ++;                 
                }
            }
        }
        function fr(event:Event){
            rotX = (mouseY < (Yh / 2)) ? -speed : (mouseY > (Yh / 2)) ? speed : 0;
            rotY = (mouseX < (Yw / 2)) ? -speed : (mouseX > (Yw / 2)) ? speed : 0;
            draw();
        }
        function point(x_:Number,y_:Number,z_:Number,n:Number){
            var p:Shape = new Shape();
            p.x = x_ + (Yw / 2);
            p.y = y_ + (Yh / 2);
            p.z = z_;
            addChildAt(p,n); 
        }
        function draw(){
            coord.length = 0;
            uv.length = 0;
            tes.graphics.clear();
            tes.graphics.beginFill(0xff3300);
            for(var pn:int = 0; pn < 8; pn ++){
                getChildAt(pn).transform.matrix3D.appendTranslation(-Yw/2,-Yh/2,0);
                getChildAt(pn).transform.matrix3D.appendRotation(rotX,Vector3D.X_AXIS);
                getChildAt(pn).transform.matrix3D.appendRotation(rotY,Vector3D.Y_AXIS);
                getChildAt(pn).transform.matrix3D.appendTranslation(Yw/2,Yh/2,0);
                //
                if(line_) tes.graphics.drawCircle(getChildAt(pn).x,getChildAt(pn).y,5);
                var t:int = fl / (fl + getChildAt(pn).z);
                coord.push(getChildAt(pn).x,getChildAt(pn).y);
                uv.push(
                (pn == 0 || pn == 4) ? 0 :
                (pn == 1 || pn == 5) ? 0 :
                (pn == 2 || pn == 6) ? 1 : 1);
                //
                uv.push(
                (pn == 0 || pn == 4) ? 1 :
                (pn == 1 || pn == 5) ? 0 :
                (pn == 2 || pn == 6) ? 0 : 1);
                //uv.push(t);
            }
            //
            triangles.graphics.clear();
            if(line_) triangles.graphics.lineStyle(3,0x066ff);
            triangles.graphics.beginFill(0x0066ff,.4);
            triangles.graphics.beginBitmapFill(tex);
            triangles.graphics.drawTriangles(coord,
            Vector.<int>([1,0,3, 3,2,1, 4,5,6, 6,7,4, 0,4,7, 7,3,0, 5,1,2, 2,6,5, 3,7,6, 6,2,3, 1,5,4, 4,0,1]),
            uv,TriangleCulling.NEGATIVE);
            triangles.graphics.endFill();
            triangles.filters = [fil];
        }
        function cl(event:MouseEvent){
            line_ = (line_) ? false : true;
        }

    }
}