Whenever I try to change the material of a particular face in the
latest version of away3dlite I get the following error when I execute
render():

RangeError: Error #1125: The index 0 is out of range 0.
        at away3dlite.containers::Scene3D/removeSceneMaterial()[C:\development
\away3dlite_3ds\src\away3dlite\containers\Scene3D.as:36]
        at away3dlite.core.base::Mesh/buildMaterials()[C:\development
\away3dlite_3ds\src\away3dlite\core\base\Mesh.as:166]
        at away3dlite.core.base::Mesh/project()[C:\development\away3dlite_3ds
\src\away3dlite\core\base\Mesh.as:72]
        at away3dlite.containers::ObjectContainer3D/project()[C:\development
\away3dlite_3ds\src\away3dlite\containers\ObjectContainer3D.as:65]
        at away3dlite.containers::Scene3D/project()[C:\development
\away3dlite_3ds\src\away3dlite\containers\Scene3D.as:94]
        at away3dlite.containers::View3D/render()[C:\development
\away3dlite_3ds\src\away3dlite\containers\View3D.as:534]
        at away3dlite_3ds/_onEnterFrame()[C:\development\away3dlite_3ds\src
\away3dlite_3ds.as:53]

Here's a simple test case that will cause the above error to happen:

package
{
        import away3dlite.cameras.HoverCamera3D;
        import away3dlite.containers.Scene3D;
        import away3dlite.containers.View3D;
        import away3dlite.materials.ColorMaterial;
        import away3dlite.primitives.Cube6;
        import away3dlite.primitives.Plane;

        import flash.display.Sprite;
        import flash.display.StageQuality;
        import flash.events.Event;

        [SWF(frameRate="60", height="600", width="800",
backgroundColor="0x000000")]
        public class away3dlite_3ds extends Sprite
        {
                private var _view:View3D;
                private var _camera:HoverCamera3D;

                public function away3dlite_3ds()
                {
                        if (stage) {
                                _init();
                        } else {
                                this.addEventListener(Event.ADDED_TO_STAGE, 
function(e:Event):void
{ _init(); });
                        }
                }

                private function _init():void {
                        stage.quality = StageQuality.LOW;

                        _camera = new HoverCamera3D();
                        _camera.distance = 300;
                        _camera.tiltAngle = 10;

                        _view = new View3D(new Scene3D(), _camera);
                        _view.x = stage.stageWidth/2;
                        _view.y = stage.stageHeight/2;
                        this.addChild(_view);

                        var plane:Plane = new Plane(new 
ColorMaterial(0xffffff), 200, 200,
2, 2);
                        plane.bothsides = true;
                        _view.scene.addChild(plane);

                        plane.faces[0].material = new ColorMaterial(0xff0000);

                        this.addEventListener(Event.ENTER_FRAME, _onEnterFrame);
                }

                private function _onEnterFrame(e:Event):void {
                        _camera.panAngle -= 1;
                        _camera.hover();
                        _view.render();
                }
        }
}

Reply via email to