package {
import flash.display.MovieClip;
import flash.events.Event;
import alternativa.engine3d.containers.ConflictContainer;
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.View;
import alternativa.engine3d.loaders.ParserCollada;
import alternativa.engine3d.objects.Mesh;
import alternativa.engine3d.lights.DirectionalLight;
import alternativa.engine3d.controllers.SimpleObjectController;
import alternativa.engine3d.materials.FlatShadingMaterial;
public class ParserPractice extends MovieClip {
[Embed("something.dae", mimeType="application/octet-stream")] static private const SomethingModel:Class;
private var world:ConflictContainer;
private var camera:Camera3D;
private var something:Mesh;
private var light:DirectionalLight;
private var soc:SimpleObjectController;
public function ParserPractice() {
world = new ConflictContainer();
camera = world.addChild(new Camera3D()) as Camera3D;
camera.view = addChild(new View(stage.stageWidth, stage.stageHeight)) as View;
camera.z = -10;
var somethingParser:ParserCollada = new ParserCollada();
somethingParser.parse(XML(new SomethingModel()));
something = world.addChild(somethingParser.objects[0]) as Mesh;
var somethingMaterial:FlatShadingMaterial = new FlatShadingMaterial();
something.setMaterialToAllFaces(somethingMaterial);
light = world.addChild(new DirectionalLight(0xFFFF00)) as DirectionalLight;
soc = new SimpleObjectController(stage, camera, 10);
camera.lookAt(something.x, something.y, something.z);
this.addEventListener(Event.ENTER_FRAME, update);
}
private function update(e:Event):void{
something.rotationY += 0.03;
something.rotationZ += 0.03;
soc.update();
light.x = camera.x;
light.y = camera.y;
light.z = camera.z;
light.lookAt(something.x, something.y, something.z);
camera.render();
}
}
}