The reflective plane has been around for a while now. I just created test
projects to see if it's fixed, here are my results:

*Project info: *
**FB4 MXML Project SDK 3.5
Away3D 3.6 Trunk (Fresh download)
Player 10.1
Camera3D

*Result:*
Randomly visible


*Project info:*
FB4 AS3 Project SDK 3.5
Away3D 3.6 Trunk (Fresh download)
Player 10.1

*Result:*
Randomly visible and shows up on browser resize


So guess still not fixed or there is something we are missing...



Source code for MXML project & Pure AS3 project attached below:





*MXML Version code - Main.mxml:*
<?xml version='1.0' encoding='utf-8'?>
<mx:Application xmlns:mx='http://www.adobe.com/2006/mxml' layout='absolute'
frameRate='30' applicationComplete='init()'>
<mx:Script>
<![CDATA[
import away3d.debug.AwayStats;
import mx.graphics.SolidColor;
import away3d.materials.WireColorMaterial;
import away3d.materials.ShadingColorMaterial;
import away3d.materials.WireframeMaterial;
 // Imports
import mx.core.UIComponent;
import away3d.containers.View3D;
import away3d.primitives.*;
 // Var ini
public var view:View3D
public var primitive1:GeodesicSphere;
public var primitive2:ReflectivePlane;
 // Setup away3d stats
public function setupAwayStats():void
{
var awaystats:AwayStats = new AwayStats();
away3dstatsContainer.addChild(awaystats);
}
 // when this is added to the stage we start this up (see mc:application
tag)
public function init():void {
// Setup Away3D
this.view = new View3D({x:0, y:0});
 // Add Away3D to its container UIComponent
away3dContainer.addChild(view);
 // Setup material
var mat1:WireColorMaterial = new WireColorMaterial(0xFFCC00);
var mat2:WireColorMaterial = new WireColorMaterial(0x660000);
 // Setup the primitive
this.primitive1 = new GeodesicSphere();
this.primitive1.radius = 100;
this.primitive1.fractures = 10;
this.primitive1.material = mat1;
this.primitive1.y = 100;
 // Add primitive1 to the Away3D view
this.view.scene.addChild(this.primitive1);
 // Setup camera to look at primitive 1
this.view.camera.lookAt(this.primitive1.position);
 // Setup reflective plane
this.primitive2 = new ReflectivePlane(view);
this.primitive2.width = 500;
this.primitive2.height = 500;
this.primitive2.segmentsW = 4;
this.primitive2.segmentsH = 4;
this.primitive2.rotationX = 15;
this.view.scene.addChild(primitive2);
  // Resize handler
this.addEventListener(Event.RESIZE,handleBrowserResize);
handleBrowserResize();
 // Enter frame handler (make things move)
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
  // Enter frame handler for animation
private function onEnterFrame(event:Event):void {
this.view.render();
this.primitive1.rotationX += 1;
this.primitive1.rotationY -= 1;
}
  // Browser resize handler (simply adjust view3d center x:0 y:0 at browser
1/2 width and height to keep things in the middle
private function handleBrowserResize(e:Event=null):void
{
this.view.x = stage.stageWidth/2;
this.view.y = stage.stageHeight/2;
}
 ]]>
</mx:Script>
 <mx:UIComponent id='away3dContainer' visible='true'/>
<mx:Label x='10' y='10' text='[email protected] developer code
snippets' fontWeight='bold'/>
<mx:UIComponent id='away3dstatsContainer' visible='true'/>
<mx:Button x='10' y='36' label='IF NOTHING HAPPENS CLICK HERE TILL IT DOES'
click='init()'/>
 </mx:Application>









*ActionScript 3 project - Main.as*
package
{
import away3d.cameras.HoverCamera3D;
import away3d.containers.Scene3D;
import away3d.containers.View3D;
import away3d.core.render.BasicRenderer;
import away3d.debug.AwayStats;
import away3d.materials.WireColorMaterial;
import away3d.primitives.GeodesicSphere;
import away3d.primitives.ReflectivePlane;
 import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
 public class Main extends Sprite
{

// Var ini
private var scene:Scene3D;
private var camera:HoverCamera3D;
private var view:View3D;
private var renderer:BasicRenderer;
 private var bMove:Boolean = false;
private var lastPanAngle:Number;
private var lastTiltAngle:Number;
private var lastMouseX:Number;
private var lastMouseY:Number;
 private var primitive1:GeodesicSphere;
private var primitive2:ReflectivePlane;
 //
------------------------------------------------------------------------------------------------
public function Main()
{
if (stage) {
setupAway3D();
} else {
addEventListener(Event.ADDED_TO_STAGE, setupAway3D);
}
}
//
------------------------------------------------------------------------------------------------
  //
------------------------------------------------------------------------------------------------
private function setupAway3D(e:Event=null):void
{
// Remove stage added listener
removeEventListener(Event.ADDED_TO_STAGE, init);
 // Setup stage
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
 // Setup Away3D
camera = new HoverCamera3D();
renderer = new BasicRenderer();
 scene = new Scene3D();
view = new View3D();
view.scene = scene;
view.camera = camera;
view.renderer = renderer;
view.x = stage.stageWidth / 2;
view.y = stage.stageHeight / 2;
 // Setup camera
camera.minTiltAngle = -80;
camera.maxTiltAngle = 80;
camera.panAngle = 150;
camera.tiltAngle = 20;
camera.zoom = 5;
 // Add Away3D to its container UIComponent
this.addChild(view);
 // Setup away3d stats (appears to slow the cpu)
var awaystats:AwayStats = new AwayStats(view);
this.addChild(awaystats);
 // Resize handler
this.addEventListener(Event.RESIZE,handleBrowserResize);
handleBrowserResize();
 // Enter frame handler (make things move)
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
 // generate
generateScene();
}
//
------------------------------------------------------------------------------------------------
  //
------------------------------------------------------------------------------------------------
private function generateScene():void
{
// Setup material
var mat1:WireColorMaterial = new WireColorMaterial(0xFFCC00);
var mat2:WireColorMaterial = new WireColorMaterial(0x660000);
 // Setup the primitive
primitive1 = new GeodesicSphere();
primitive1.radius = 100;
primitive1.fractures = 10;
primitive1.material = mat1;
primitive1.y = 100;
 // Add primitive1 to the Away3D view
view.scene.addChild(primitive1);
 // Setup camera to look at primitive 1
view.camera.lookAt(primitive1.position);
 // Setup reflective plane
primitive2 = new ReflectivePlane(view);
primitive2.width = 500;
primitive2.height = 500;
primitive2.segmentsW = 4;
primitive2.segmentsH = 4;
primitive2.rotationX = 15;
view.scene.addChild(primitive2);
}
//
------------------------------------------------------------------------------------------------
  //
------------------------------------------------------------------------------------------------
private function onEnterFrame(e:Event):void
{
 // Camera movement
if (bMove) {
camera.panAngle = 0.3 * (stage.mouseX - lastMouseX) + lastPanAngle;
camera.tiltAngle = 0.3 * (stage.mouseY - lastMouseY) + lastTiltAngle;
}
 // Hover camera
camera.hover();
 // Render
view.render();
}
//
------------------------------------------------------------------------------------------------
   //
------------------------------------------------------------------------------------------------
private function mouseDownHandler(event:MouseEvent):void
{
lastPanAngle = camera.panAngle;
lastTiltAngle = camera.tiltAngle;
lastMouseX = stage.mouseX;
lastMouseY = stage.mouseY;
bMove = true;
 stage.addEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
//
------------------------------------------------------------------------------------------------
//
------------------------------------------------------------------------------------------------
private function mouseUpHandler(event:MouseEvent):void
{
bMove = false;
stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
//
------------------------------------------------------------------------------------------------
//
------------------------------------------------------------------------------------------------
private function onStageMouseLeave(event:Event):void
{
bMove = false;
stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
//
------------------------------------------------------------------------------------------------
  //
------------------------------------------------------------------------------------------------
// Browser resize handler (simply adjust view3d center x:0 y:0 at browser
1/2 width and height to keep things in the middle
private function handleBrowserResize(e:Event=null):void
{
view.x = stage.stageWidth/2;
view.y = stage.stageHeight/2;
}
//
------------------------------------------------------------------------------------------------
   }
}
*
*

Reply via email to