求助:给Collada 添加的监听事件怎么不管用啊?
幽笨笨 (2009-11-23 09:53:35)
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.cameras.CameraType;
import org.papervision3d.events.FileLoadEvent;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.view.layer.ViewportLayer;
public class test01 extends Sprite {
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var scene:Scene3D;
private var camera:Camera3D;
private var plane:Plane;
private var car:Collada;
public function test01():void {
viewport=new Viewport3D(400,400,CameraType.FREE);
renderer=new BasicRenderEngine ;
scene=new Scene3D;
camera=new Camera3D;
camera.y=1000;
camera.moveBackward(2000);
addChild(viewport);
plane=new Plane(new BitmapFileMaterial("asset/map.jpg"),10000,10000,8,8);
plane.pitch(90);
scene.addChild(plane);
var bitmap:BitmapMaterial=new BitmapFileMaterial("asset/map_car.jpg");
bitmap.interactive=true;
var materialsList:MaterialsList=new MaterialsList();
materialsList.addMaterial(bitmap,"all");
car=new Collada("asset/car.XML",materialsList);
scene.addChild(car);
car.addEventListener(FileLoadEvent.LOAD_COMPLETE,onloaded);
addEventListener(Event.ENTER_FRAME,process);
}
private function onloaded(evt:FileLoadEvent):void {
car.moveLeft(2000);
car.moveUp(50);
car.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK,onclick);
}
private function onclick(event:InteractiveScene3DEvent):void
{
trace("click");
}
private function process(evt:Event):void {
renderer.renderScene(scene,camera,viewport);
}
}
}