forked from: Zindex

by bradsedito forked from Zindex (diff: 66)
♥0 | Line 69 | Modified 2012-03-29 21:57:11 | MIT License
play

ActionScript3 source code

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





package 
{
    import flash.geom.*;
    import flash.events.*;
    import flash.display.*;
    import com.greensock.*;
    import com.greensock.easing.*;
    
    [SWF(backgroundColor = 0xCCFFCC)]
    
    
    public class ZIndex extends Sprite 
    {        
        public  var Vec3D_tree:Vector3D;
        private var _sw:Number = stage.stageWidth;
        private var _sh:Number = stage.stageHeight; 
        private var _trees:Array;

        
        public function ZIndex() 
        {
            addEventListener( Event.ENTER_FRAME, AugmentedPerspective )
            function AugmentedPerspective( event:Event ):void
            {
                var mX:Number = stage.mouseX
                var mY:Number = stage.mouseY
                root.transform.perspectiveProjection.projectionCenter  =  new Point( ((_sw+mX)/2),((_sw+mY)/2) ); // (_sw/2),(_sh/2) );
                root.transform.perspectiveProjection.fieldOfView       =  10
                TweenMax.to( root.transform.perspectiveProjection, 4, {fieldOfView:180,ease:Quad.easeInOut})
                root.transform.perspectiveProjection.fieldOfView       =  10
                //root.transform.perspectiveProjection.focalLength       = 
                //root.transform.perspectiveProjection.projectionCenter = new Point( (_sw/2),(_sh/2) );
            }

            INav();
            _trees = new Array();            
            
            for(var i:int = 0;i < 500; i++)
            {
                var tree:Sprite = new Sprite();

                tree.graphics.beginFill(Math.random() * 255 << 8);
                tree.graphics.lineTo(-10, 0);
                tree.graphics.lineTo(-10, -30);
                tree.graphics.lineTo(-40, -30);
                tree.graphics.lineTo(0, -100);
                tree.graphics.lineTo(40, -30);
                tree.graphics.lineTo(10, -30);
                tree.graphics.lineTo(10, 0);
                tree.graphics.lineTo(0, 0);
                tree.graphics.endFill();
                
                tree.x      =  Math.random() * stage.stageWidth;
                tree.y      =  430;
                tree.z      =  Math.random() * 10000;
                Vec3D_tree  =  new Vector3D( tree.x,tree.y,tree.z );
                
                _trees.push(tree);
            }
            
            _trees.sortOn("z", Array.NUMERIC | Array.DESCENDING);
            for(var j:int = 0;j < 500; j++)
            {
                addChild(_trees[j] as Sprite);
            }
        }
        public function INav():void
        {
            stage.addEventListener( MouseEvent.CLICK,MouseEventHandler );
            function MouseEventHandler( event:MouseEvent ):void
            {
                if( event.currentTarget==_trees.tree)
                {
                    var stageVec3D:Vector3D = new Vector3D();
                    stage.local3DToGlobal( stageVec3D );
                    trace( stageVec3D );
                    trace( _trees.Vec3D_tree );
                }

            }

        }
        
    }
}