Hybrid 2d/3d Z-Sorting
forked from 2D Z sorting (diff: 40)
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/7V6o
*/
package
{
import flash.display.Sprite;
import flash.events.*;
public class FlashTest extends Sprite
{
private var boxes:Array;
private var BOX_NUM:int = 10;
public function FlashTest()
{
var box:Box;
boxes = [];
for(var i:int = 0; i < BOX_NUM; i++){
box = new Box();
boxes.push(box);
addChild(box);
}
addEventListener(Event.ENTER_FRAME, onLoop);
}
private function onLoop(e:Event):void
{
boxes.sortOn("y", Array.NUMERIC);
for(var i:int = 0; i < BOX_NUM; i++){
boxes[i].scaleX = boxes[i].scaleY = boxes[i].y / stage.stageHeight + 0.5;
addChild(boxes[i]);
}
}
}
}
import flash.display.Sprite;
import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
import flash.events.*;
class Box extends Sprite
{
public function Box()
{
graphics.beginFill(0);
//graphics.drawCircle( 0,0,50 );
graphics.drawRect( 0,0,50,50 );
graphics.lineStyle( 6,0xFF0000 );
//this.alpha = .6;
addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
private function onAdded(e:Event):void
{
x = Math.random() * stage.stageWidth;
y = Math.random() * stage.stageHeight;
z = Math.random() * 500;//(x+y/2);//stage.stageHeight;
animate();
}
private function animate():void
{
var rx:Number = Math.random() * stage.stageWidth,
ry:Number = Math.random() * stage.stageHeight,
rz:Number = Math.random() * ( 100 );
TweenMax.to(this, 3, {x : rx, y : ry, z : rz, onComplete : animate});
}
}