1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.filesystem.File;
import flash.net.URLRequest;
import flash.utils.ByteArray;
import away3d.containers.ObjectContainer3D;
import away3d.containers.View3D;
import away3d.events.Loader3DEvent;
import away3d.loaders.Collada;
import away3d.loaders.Loader3D;
import away3d.loaders.Obj;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.DAE;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
public class Container3D extends flash.display.Sprite
{
public function Container3D()
{
}
protected var cow:ObjectContainer3D;
protected var view:View3D;
private var scene:Scene3D;
private var viewport:Viewport3D;
private var camera:Camera3D;
private var renderer:BasicRenderEngine;
//Ajout
private var dae:DAE;
public function init(data:Object):void
{
scene = new Scene3D();
viewport = new Viewport3D();
addChild( viewport );
camera = new Camera3D();
renderer = new BasicRenderEngine();
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("test.png"));
}
private function onComplete(evt:Event):void
{
var bitmapData:BitmapData = Bitmap(LoaderInfo(evt.target).content).bitmapData;
var myBitmapMaterial:BitmapMaterial = new BitmapMaterial(bitmapData);
myBitmapMaterial.doubleSided = true;
// Add each material to a MaterialsList
var myMaterialsList:MaterialsList = new MaterialsList();
myMaterialsList.addMaterial(myBitmapMaterial, "mat0");
dae = new DAE();
dae.useOwnContainer = true;
var modelFile:File = new File("test.dae");
dae.load(modelFile.nativePath,myMaterialsList);
dae.scale = 250; //Redimensionne l'objet
scene.addChild(dae);
addEventListener(Event.ENTER_FRAME, render);
}
private function render(e:Event):void{
dae.rotationY ++;
renderer.renderScene( scene, camera, viewport );
}
}
} |
Partager