forked from: Zindex
forked from Zindex (diff: 66)
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 );
}
}
}
}
}