Thanks Guys for willing to help. Here is my code. Note that I have skipped all the imports, just to save some room.
var viewport:Viewport3D = new Viewport3D(0, 0, true, true);
container.addChild(viewport);
var renderer:BasicRenderEngine = new BasicRenderEngine();
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
camera.zoom = 11;
camera.focus = 100;
book = new DisplayObject3D();
var scale = 0.7
var bookWidth = 100;
var bookHeight = 200;
var bookThickness = 40;
var bookAngle = 45;
var currentPage = 1;
var face = Params.rootPath.pages[currentPage];
var faces = new Object()
faces[0] = sideImg;
faces[1] = sideImg;
faces[2] = backImg;
faces[3] = rightImg;
faces[4] = sideImg;
faces[5] = face;
var cube1 = createCube(faces, bookThickness, bookWidth, bookHeight, -bookThickness/2,bookWidth/2, 0)
cube1.rotationZ = bookAngle;
faces = new Object()
faces[0] = sideImg;
faces[1] = sideImg;
faces[2] = backImg;
faces[3] = rightImg;
faces[4] = sideImg;
faces[5] = face;
var cube2 = createCube(faces,bookThickness,bookWidth,bookHeight,bookThickness/2,bookWidth/2,0)
cube2.rotationZ = -bookAngle;
faces = new Object()
faces[0] = sideImg;
faces[1] = sideImg;
faces[2] = backImg;
faces[3] = coverImg;
faces[4] = sideImg;
faces[5] = spineImg;
var cube3 = createCube(faces,1,1,bookHeight,0,-0.5,0)
cube3.scaleY = bookThickness*Math.sin(bookAngle*Math.PI/180)
cube3.scaleX = 2*bookThickness*Math.cos(bookAngle*Math.PI/180)
book.addChild(cube1);
book.addChild(cube2);
book.addChild(cube3);
scene.addChild(book)
renderer.renderScene(scene, camera, viewport);
var rotator = new Sprite()
rotator.addEventListener(Event.ENTER_FRAME, rotate);
function rotate(e:Event):void
{
book.rotationY += 5
book.rotationX += 1
book.rotationY = book.rotationY % 360;
book.rotationX = book.rotationX % 360;
renderer.renderScene(scene, camera, viewport);
}
// Render the 3D scene
public function createCube(faces,xWidth,zWidth,yWidth,x,y,z)
{
var materialList = new Object();
var displayOb = new DisplayObject3D();
for(var i=0;i<6;i++) {
materialList* = new MovieMaterial(faces*)
materialList*.smooth = true;
materialList*.animated = true;
}
var materialsList = new MaterialsList({front:materialList[0], back:materialList[1], left:materialList[2], right:materialList[3],top:materialList[4], bottom:materialList[5]});
var cube = new Cube(materialsList, xWidth, yWidth, zWidth, 2, 2, 2);
cube.name = "cube"
displayOb.addChild(cube,"cube");
cube.x = x
cube.y = y
cube.z = z
return displayOb;
}