Здравствуйте, хочу создать 3Д панораму в Away3D. Создал 6 плоскостей и расположил их во круг камеры по кубу. Только с плоскостями проблема (((. Их полигоны при вращении камеры исчезают. Что можно сделать?
Вот код AS:

Код AS3:
package {
import away3d.containers.Scene3D;
import away3d.containers.View3D;
import away3d.cameras.Camera3D;
import away3d.primitives.Sphere;
import away3d.primitives.Plane;
import flash.display.MovieClip;
import flash.media.Camera;
import away3d.cameras.Camera3D;
[SWF (width="600",height="400",frameRate="31",backgroundColor="0x000000")]
public class away3d_prj01_world extends MovieClip
{
private var view:View3D;
private var front:Plane=new Plane;
private var back:Plane=new Plane;
private var left:Plane=new Plane;
private var right:Plane=new Plane;
private var top:Plane=new Plane;
private var bottom:Plane=new Plane;
public var vrx:Number=0;
public var vry:Number=0;
private var cam:Camera3D=new Camera3D;
public function away3d_prj01_world()
{
view=new View3D({camera:cam, x:300, y:200, z:-100});
addChild(view);
view.x=300;
view.y=200;
vrx=0;
vry=0;
// set view postion
var scene:Scene3D=new Scene3D;
view.scene=scene;
front.z=500;
front.rotationX=90;
front.width=1000;
front.height=1000;
scene.addChild(front);
back.z=-500;
back.rotationX=-90;
back.width=1000;
back.height=1000;
scene.addChild(back);
left.x=-500;
left.rotationY=90;
left.rotationX=-90;
left.width=1000;
left.height=1000;
scene.addChild(left);
right.x=500;
right.rotationY=-90;
right.rotationX=-90;
right.width=1000;
right.height=1000;
scene.addChild(right);
top.y=500;
top.rotationX=180;
top.width=1000;
top.height=1000;
scene.addChild(top);
bottom.y=-500;
bottom.width=1000;
bottom.height=1000;
scene.addChild(bottom);
// lets visualyze
view.render();
}
public function zoom(r:int):void
{
cam.zoom+=r;
view.render();
}
public function rotx(r:int):void
{if((cam.rotationX+r<90)&&(cam.rotationX+r>-90))
{
cam.rotationX+=r;
if(cam.rotationX>360)
{
cam.rotationX-=360;
}
if(cam.rotationX<0)
{
cam.rotationX+=360;
}
view.render();
}
}
public function roty(r:int):void
{
cam.rotationY+=r;
if(cam.rotationY>360)
{
cam.rotationY-=360;
}
if(cam.rotationY<0)
{
cam.rotationY+=360;
}
view.render();
}
}
}
И вот код fla:

Код AS3:
import away3d_prj01_world;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.ui.Mouse;
import flash.display.*;
import away3d.containers.*;
import away3d.core.base.*;
import away3d.primitives.*;
import away3d.materials.*;
import away3d.core.utils.Cast;
import away3d.cameras.*;
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.BitmapFilterType;
import flash.filters.GlowFilter;
import flash.sampler.NewObjectSample;
import away3d.test.Button;
import flash.display.MovieClip;
var m_x:int=0;
var m_y:int=0;
var log:Boolean=false;
var r_x:int=0;
var r_y:int=0;
var bit_rot:int=0;
var r:Number=0;
var lastKey:uint=0;
var keyIsDown:Boolean = false;
this.stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown);
this.stage.addEventListener(KeyboardEvent.KEY_UP,keyUp);
this.stage.addEventListener(MouseEvent.MOUSE_DOWN,clik);
this.stage.addEventListener(MouseEvent.MOUSE_MOVE,mov);
this.stage.addEventListener(MouseEvent.MOUSE_UP,up);
this.stage.addEventListener(MouseEvent.MOUSE_WHEEL,plus);
function plus(e:MouseEvent):void
{if((cam.zoom<=5)&&(e.delta<0))
{
cam.zoom=6;
view.render();
}
else
if(cam.zoom+e.delta>5) zoom(e.delta);
}
function up(e:MouseEvent):void
{
log=false;
vrx=0;
vry=0;
}
function clik(e:MouseEvent):void
{
m_x=mouseX;
m_y=mouseY;
log=true;
}
function mov(e:MouseEvent):void
{
if(log==true)
{
if((mouseX-m_x)/30<10)
vry=(mouseX-m_x)/30;
else
vry=10;
if((m_y-mouseY)/30<10)
vrx=(m_y-mouseY)/30;
else
vrx=10;
}
}
var tex_fr:
function keyDown(e:KeyboardEvent):void
{
lastKey = e.keyCode;
keyIsDown = true;
}
function keyUp(e:KeyboardEvent):void
{
keyIsDown = false;
}
root.addEventListener(Event.ENTER_FRAME,myFun);
function myFun(e:Event):void
{
rotx(vrx);
roty(vry);
if(keyIsDown){
// if the key is still pressed, just keep on moving
switch(lastKey){
case 87 : r_x=34; r_y=245; bit_rot=1; break;
case 83 : rotx(-3); break;
case 65 : roty(-3); break;
case 68 : roty(3); break;
}
}
}
var but_up:MovieClip=new btn_rot_up();
var but_down:MovieClip=new btn_rot_up();
var but_left:MovieClip=new btn_rot_left();
var but_right:MovieClip=new btn_rot_left();
var but_in:MovieClip=new Zoom_in();
var but_out:MovieClip=new Zoom_out();
addChild(but_down);
addChild(but_up);
addChild(but_left);
addChild(but_right);
addChild(but_in);
addChild(but_out);
but_up.x=250;
but_up.y=350;
but_down.x=330;
but_down.y=390;
but_down.scaleY=-1;
but_left.x=170;
but_left.y=350;
but_right.x=470;
but_right.y=350;
but_right.scaleX=-1;
but_in.x=20;
but_in.y=350;
but_out.x=100;
but_out.y=350;
but_up.addEventListener(MouseEvent.MOUSE_DOWN,turn_up);
but_down.addEventListener(MouseEvent.MOUSE_DOWN,turn_down);
root.addEventListener(MouseEvent.MOUSE_UP,stop_turn_x);
root.addEventListener(Event.ENTER_FRAME,rot_x);
but_left.addEventListener(MouseEvent.MOUSE_DOWN,turn_left);
but_right.addEventListener(MouseEvent.MOUSE_DOWN,turn_right);
root.addEventListener(MouseEvent.MOUSE_UP,stop_turn_y);
root.addEventListener(Event.ENTER_FRAME,rot_y);
but_in.addEventListener(MouseEvent.MOUSE_DOWN,zoom_in);
but_out.addEventListener(MouseEvent.MOUSE_DOWN,zoom_out);
root.addEventListener(MouseEvent.MOUSE_UP,stop_zoom);
root.addEventListener(Event.ENTER_FRAME,zoom1);
var x_rot:int=0;
var y_rot:int=0;
var zooming:int=0;
function zoom1(e:Event):void
{ if((cam.zoom<=3)&&(zooming<0))
trace("Нельзя уменьшать!!!");
else
if((cam.zoom>=10)&&(zooming>0))
trace("Нельзя увеличивать!!!");
else
cam.zoom+=zooming;
}
function zoom_in(e:MouseEvent):void
{
zooming=1;
}
function zoom_out(e:MouseEvent):void
{
zooming=-1;
}
function stop_zoom(e:MouseEvent):void
{
zooming=0;
}
function rot_x(e:Event):void
{
rotx(x_rot);
}
function turn_up(e:MouseEvent):void
{
x_rot=3;
}
function turn_down(e:MouseEvent):void
{
x_rot=-3;
}
function stop_turn_x(e:MouseEvent):void
{
x_rot=0;
}
function rot_y(e:Event):void
{
roty(y_rot);
}
function turn_left(e:MouseEvent):void
{
y_rot=-3;
}
function turn_right(e:MouseEvent):void
{
y_rot=3;
}
function stop_turn_y(e:MouseEvent):void
{
y_rot=0;
}
root.addEventListener(Event.ENTER_FRAME,fresh);
function fresh(e:Event):void
{
view.render();
}
function turn_to(e:Event)
{
if(bit_rot==1)
{
if(cam.rotationX>r_x)
{
rotx(-1);
}
if(cam.rotationX<r_x)
{
rotx(1);
}
if(cam.rotationY>r_y)
{
roty(-1);
}
if(cam.rotationY<r_y)
{
roty(1);
}
}
if((Math.abs(r_x-cam.rotationX)<0)&&(Math.abs(r_y-cam.rotationY))<0)
{
bit_rot=0;
r_y=0;
r_x=0;
}
}