-
import flash.display.*;
-
import flash.display.stage.*;
-
import flash.events.*;
-
import flash.geom.ColorTransform;
-
import flash.utils.Dictionary;
-
-
-
// Import Papervision3D
-
import org.papervision3d.core.proto.*;
-
import org.papervision3d.scenes.*;
-
import org.papervision3d.cameras.*;
-
import org.papervision3d.objects.*;
-
import org.papervision3d.materials.*;
-
-
// ___________________________________________________________________ 3D vars
-
-
var container :Sprite;
-
var scene :MovieScene3D;
-
var camera :Camera3D;
-
var i:Number;
-
-
var item:DisplayObject3D;
-
var city:Collada;
-
-
var material1:ColorMaterial;
-
var material2:MovieMaterial;
-
var material3:BitmapMaterial;
-
-
stage.quality = StageQuality.HIGH;
-
stage.scaleMode = StageScaleMode.NO_SCALE;
-
init3D();
-
createScene();
-
-
// ___________________________________________________________________ Init3D
-
-
function init3D():void {
-
// Create container sprite and center it in the stage
-
container = new Sprite();
-
addChild( container );
-
container.x = 320;
-
container.y = 240;
-
-
// Create scene
-
scene = new MovieScene3D( container );
-
-
// Create camera
-
camera = new Camera3D();
-
camera.zoom = 15;
-
camera.focus = 40;
-
camera.y = 1000;
-
camera.x = 0;
-
camera.z = -3000;
-
-
}
-
-
// ___________________________________________________________________ Create scene
-
-
function createScene() {
-
// create flat red material
-
material1 = new ColorMaterial();
-
material1.doubleSided = true;
-
material1.fillColor = 0xFF0000;
-
material1.fillAlpha = 1.0;
-
-
//create movieclip material
-
material2 = new MovieMaterial(new MyMCMaterial(),true);//transparency
-
material2.animated = true;
-
material2.smooth = true;
-
material2.doubleSided = true;// you'll notice this if transparency is enabled
-
-
// create Bitmap material
-
material3 = new BitmapMaterial(new MyBitmapMaterial(2,2));//pass required parameters which are meaningless (the dimensions will come from the library bitmap)
-
material3.doubleSided = true;
-
-
-
var matList=new MaterialsList();
-
matList.addMaterial(material1,"mat0");//second parameter is the name you gave the material in Blender
-
matList.addMaterial(material3,"mat1");
-
matList.addMaterial(material2,"mat2");
-
matList.addMaterial(material3,"mat3");
-
matList.addMaterial(material1,"mat4");
-
-
-
city = new Collada("testcityUV.dae", matList );//path to your Collada file
-
scene.addChild( city, "city" );
-
this.addEventListener( Event.ENTER_FRAME, loop );//runs the loop function every frame for live updating. You could change this to only render on demand if desired.
-
-
}
-
-
// ___________________________________________________________________ Loop
-
-
function loop(event:Event):void {
-
update3D();
-
}
-
-
function update3D():void {
-
//camera.x +=((container.mouseX*10) - camera.x) * 0.005;
-
city.rotationY+=container.mouseX/50;
-
//camera.y +=((container.mouseY*10) - camera.y) * 0.005;
-
item=city.getChildByName("building1"); //the name you gave the object in Blender
-
item.rotationZ++;
-
scene.renderCamera( camera );
-
}