Hello,
My web app (you can try it - see below) uses the popular idiom of
letting you pan and tilt using the hover camera by mouse dragging, but
when you do, after a certain amount of panning and tilting - errors
like the one in the subject line are stimulated. The behaviour is
consistent insofar that you can always stimulate it, but there seems
no obvious pattern about how soon it will kick in.
The Away3D version is 3.6.0 (svn tag)
The stack trace is:
RangeError: Error #1125: The index 85 is out of range 84.
at away3d.core.render::BasicRenderer/render()
at away3d.core.session::AbstractSession/render()
at away3d.core.session::AbstractSession/render()
at away3d.containers::View3D/render()
at ThreeD.Controller::ThreeDViewController/_handle_enter_frame()
The app is publicly reachable here:
http://rm3dee.appspot.com/static/whitelabel_app/rm3dee_flex_public_app_whitelabel.html
To stimulate the error - please use the slider to zoom in as far as
you go, and then twiddle the model using mouse dragging. (Continuous
dragging - no mouse button release). Nb. the zooming in is not a
necessary condition to stimulate the error - but it makes it show up
almost immediately.
The scene is built simply using <Plane>s using this code:
...
...
_parent_3d_object=new ObjectContainer3D();
this.view_3d.scene.addChild((_parent_3d_object as
Object3D));
for each (var plane:Plane in display_model.planes) {
_parent_3d_object.addChild(plane);
}
_parent_3d_object.rotationX=90;
_parent_3d_object.rotationY=0;
_parent_3d_object.rotationZ=180;
this.view_3d.render();
The pan/zoom handling uses this:
private function _handle_enter_frame(e:Event):void {
if (this._dragging == false) {
return;
}
const gain:Number=0.3;
_three_d_view_widget.camera.panAngle=gain *
(this._three_d_view_widget.stage.mouseX
- this._drag_x) +
_last_pan_angle;
_three_d_view_widget.camera.tiltAngle=gain *
(this._three_d_view_widget.stage.mouseY
- this._drag_y) +
_last_tilt_angle;
_three_d_view_widget.camera.hover();
this._three_d_view_widget.view_3d.render();
}
You will notice in the app that the rendering style changes to a fast/
cheap style as you initiate the dragging operation. In fact the entire
scene contents are replaced on this transition. Before the transition
we use ShadingColorMaterial with Renderer.CORRECT_Z_ORDER, and during
the dragging (when the problem shows up) we use WireColorMaterial with
Renderer.BASIC.
I'd really appreciate any support or guidance I get to overcome or
work around this problem - because my entire app pretty much hinges
(no pun intended) on it. Thanks in anticipation.
Pete Howard