Title: Layers Demo
Bringing layers to front using BasicView - revision 677 - also uses minimalcomps
Actionscript:
-
/**
-
* v0.1 code by dehash.com 2008
-
* Released as open source under the BSD License
-
* http://www.opensource.org/licenses/bsd-license.php
-
*/
-
package com.dehash.pv3d.examples.basic
-
{
-
-
import org.papervision3d.objects.DisplayObject3D;
-
import org.papervision3d.objects.primitives.Plane;
-
import org.papervision3d.view.BasicView;
-
import org.papervision3d.materials.ColorMaterial;
-
import org.papervision3d.view.layer.util.ViewportLayerSortMode;
-
import flash.events.Event;
-
// http://code.google.com/p/minimalcomps/
-
import com.bit101.components.PushButton;
-
-
[SWF(width="800", height="600", backgroundColor="0x000000")]
-
-
public class LayersDemo extends BasicView
-
{
-
private var redPlane:Plane;
-
private var greenPlane:Plane;
-
private var bluePlane:Plane;
-
private var quality:uint = 16;
-
private var planeWidth:uint = 400;
-
private var planeHeight:uint = 400;
-
private var topDepth:uint = 100;
-
private var world:DisplayObject3D;
-
-
-
public function LayersDemo(viewportWidth:Number = 800, viewportHeight:Number = 600,
-
scaleToStage:Boolean=true, interactive:Boolean=false, cameraType:String="CAMERA3D")
-
{
-
-
super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
-
-
viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;
-
-
redPlane = new Plane(new ColorMaterial(0xFF0000, 1), planeWidth, planeHeight, quality);
-
greenPlane = new Plane(new ColorMaterial(0x00FF00, 1), planeWidth, planeHeight, quality);
-
bluePlane = new Plane(new ColorMaterial(0x0000FF, 1), planeWidth, planeHeight, quality);
-
-
redPlane.x = redPlane.y = -105;
-
greenPlane.x = greenPlane.y = 100;
-
bluePlane.x = bluePlane.y = 250;
-
-
world = new DisplayObject3D();
-
-
world.addChild(redPlane);
-
world.addChild(greenPlane);
-
world.addChild(bluePlane);
-
scene.addChild(world);
-
-
viewport.getChildLayer(redPlane, true).layerIndex = ++topDepth;
-
viewport.getChildLayer(greenPlane, true).layerIndex = ++topDepth;
-
viewport.getChildLayer(bluePlane, true).layerIndex = ++topDepth;
-
-
camera.target = world;
-
-
addChild(new PushButton(null, 50, 50, "RED to Front", redToFrontHandler));
-
addChild(new PushButton(null, 200, 50, "GREEN to Front", greenToFrontHandler));
-
addChild(new PushButton(null, 350, 50, "BLUE to Front", blueToFrontHandler));
-
-
-
-
-
renderer.renderScene(scene, camera, viewport);
-
this.startRendering();
-
}
-
-
private function redToFrontHandler(event:Event):void {
-
viewport.getChildLayer(redPlane, true).layerIndex = ++topDepth;
-
}
-
private function greenToFrontHandler(event:Event):void {
-
viewport.getChildLayer(greenPlane, true).layerIndex = ++topDepth;
-
}
-
private function blueToFrontHandler(event:Event):void {
-
viewport.getChildLayer(bluePlane, true).layerIndex = ++topDepth;
-
}
-
-
protected override function onRenderTick(event:Event = null):void {
-
var rotY: Number = (mouseY-(stage.stageHeight/2))/(stage.height/2)*(1600);
-
var rotX: Number = (mouseX-(stage.stageWidth/2))/(stage.width/2)*(-1600);
-
camera.x= camera.x+(rotX-camera.x)/5;
-
camera.y = camera.y + (rotY - camera.y) / 5;
-
renderer.renderScene(scene, camera, viewport)
-
}
-
-
}
-
}