package {
import flash.display.*;
import flash.events.*;
import org.papervision3d.scenes.*;
import org.papervision3d.objects.*;
import org.papervision3d.cameras.*;
import org.papervision3d.materials.*;
public class MultCubeObj1 extends Sprite
{
private var container : Sprite;
private var scene : MovieScene3D;
private var camera : Camera3D;
private var rootNode : DisplayObject3D;
private var cubeObj1 : Cube;
private var cubeObj2 : Cube;
private var material1 : BitmapFileMaterial;
private var material2 : BitmapFileMaterial;
//---------------------------------------------Constructor
public function MultCubeObj1():void
{
stage.frameRate = 60;
stage.quality = "MEDIUM";
stage.scaleMode = "noScale";
stage.align = StageAlign.TOP_LEFT;
//コンテナ生成
container = new Sprite();
container.x = stage.stageWidth / 2;
container.y = stage.stageHeight / 2;
stage.addChild( container );
//シーン生成
scene = new MovieScene3D( container );
//rootNode生成
rootNode = new DisplayObject3D();
scene.addChild( rootNode );
//マテリアル1設定
material1 = new BitmapFileMaterial( "zaku.jpg" );
material1.doubleSided = true
material1.smooth = true;
//Cube1オブジェクト生成
cubeObj1 = new Cube(material1, 800, 800, 800, 2, 2, 2);
cubeObj1.x = -800;
rootNode.addChild(cubeObj1);
//マテリアル2設定
material2 = new BitmapFileMaterial( "sla.jpg" );
material2.doubleSided = true
material2.smooth = true;
//Cube2オブジェクト生成
cubeObj2 = new Cube(material2, 800, 800, 800, 2, 2, 2);
cubeObj2.x = 800;
rootNode.addChild(cubeObj2);
//camera設定
camera = new Camera3D();
camera.zoom = 1;
stage.addEventListener(Event.ENTER_FRAME, loop);
stage.addEventListener(Event.RESIZE, onStageResize);
}
//---------------------------------------------loop
private function loop(e:Event):void{
cubeObj1.rotationY=container.mouseX;
cubeObj1.rotationX=container.mouseY;
material1.updateBitmap();
cubeObj2.rotationY=-container.mouseX;
cubeObj2.rotationX=-container.mouseY;
material2.updateBitmap();
scene.renderCamera( camera );
}
//---------------------------------------------onStageResize
private function onStageResize(e:Event):void{
container.x = this.stage.stageWidth / 2;
container.y = this.stage.stageHeight / 2;
}
}
}