Flash
Papervision3D
Start
Cameras
Core
Light
Materials
Shade Materials
Special Material
Parser Objects
Primitive Objects
Special Objects
Render
Scene
Typography
Views
View Layers
ReflectionView
ReflectionView is BasicView with relfection.
Example
Instructions - Extending ReflectionView
- Import
import org.papervision3d.core.effects.view.ReflectionView;
- Call
super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
Parameter: Default: Description: viewportWidth 640 viewport width viewportHeight 480 viewport height scaleToStage true set viewport size to stage size interactive false listen for mouse events cameraType "Target" "Target" | "Free" | "Debug" | "Spring" "Target" - camera with target x:0 y:0 z:0 "Free" - camera without target "Debug" - camera with mouse/keyboard control and display information "Spring" - camera with spring effect - Render
singleRender();
Code - Extending ReflectionView
package
{
import flash.events.Event;
import flash.filters.BlurFilter;
import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.objects.primitives.Plane;
public class Papervision3DReflectionViewExtension extends ReflectionView
{
private var material :ColorMaterial;
private var object :Plane;
private var object2 :Plane;
private var object3 :Plane;
public function Papervision3DReflectionViewExtension()
{
super(640, 480, true, true, "Target");
surfaceHeight = -550;
viewportReflection.filters = [new BlurFilter(4, 4, 1)];
material = new ColorMaterial(0x000000);
material.doubleSided = true;
material.interactive = true;
object = new Plane(material);
scene.addChild(object);
object2 = new Plane(material);
object2.x = -550;
scene.addChild(object2);
object3 = new Plane(material);
object3.x = 550;
scene.addChild(object3);
object.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, handleObjectOver);
object.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, handleObjectOut);
object.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, handleObjectPress);
addEventListener(Event.ENTER_FRAME, handleEnterFrame);
}
private function handleEnterFrame(e:Event):void
{
object.yaw(1);
singleRender();
}
private function handleObjectOver(e:InteractiveScene3DEvent):void
{
viewport.containerSprite.buttonMode = true;
}
private function handleObjectOut(e:InteractiveScene3DEvent):void
{
viewport.containerSprite.buttonMode = false;
}
private function handleObjectPress(e:InteractiveScene3DEvent):void
{
object.material = new ColorMaterial(Math.random() * 0xFFFFFF);
object.material.doubleSided = true;
object.material.interactive = true;
}
}
}
Instructions - Extending Sprite
- Import
import org.papervision3d.core.effects.view.ReflectionView;
- Declare
private var view :ReflectionView;
- Initialize
view = new ReflectionView(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
Parameter: Default: Description: viewportWidth 640 viewport width viewportHeight 480 viewport height scaleToStage true set viewport size to stage size interactive false listen for mouse events cameraType "Target" "Target" | "Free" | "Debug" | "Spring" "Target" - camera with target x:0 y:0 z:0 "Free" - camera without target "Debug" - camera with mouse/keyboard control and display information "Spring" - camera with spring effect - Add
addChild(view);
- Render
view.singleRender();
Code - Extending Sprite
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.BlurFilter;
import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.objects.primitives.Plane;
public class Papervision3DReflectionView extends Sprite
{
private var view :ReflectionView;
private var material :ColorMaterial;
private var object :Plane;
private var object2 :Plane;
private var object3 :Plane;
public function Papervision3DReflectionView()
{
view = new ReflectionView(640, 480, true, true, "Target");
addChild(view);
view.surfaceHeight = -550;
view.viewportReflection.filters = [new BlurFilter(4, 4, 1)];
material = new ColorMaterial(0x000000);
material.doubleSided = true;
material.interactive = true;
object = new Plane(material);
view.scene.addChild(object);
object2 = new Plane(material);
object2.x = -550;
view.scene.addChild(object2);
object3 = new Plane(material);
object3.x = 550;
view.scene.addChild(object3);
object.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, handleObjectOver);
object.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, handleObjectOut);
object.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, handleObjectPress);
addEventListener(Event.ENTER_FRAME, handleEnterFrame);
}
private function handleEnterFrame(e:Event):void
{
object.yaw(1);
view.singleRender();
}
private function handleObjectOver(e:InteractiveScene3DEvent):void
{
view.viewport.containerSprite.buttonMode = true;
}
private function handleObjectOut(e:InteractiveScene3DEvent):void
{
view.viewport.containerSprite.buttonMode = false;
}
private function handleObjectPress(e:InteractiveScene3DEvent):void
{
object.material = new ColorMaterial(Math.random() * 0xFFFFFF);
object.material.doubleSided = true;
object.material.interactive = true;
}
}
}

