模型旋转换贴图代码,贴图不换,运行没问题,求高手帮忙,多谢 本人新新新手
猫七七 (2011-04-01 14:29:20)
package
{
import flash.display.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import org.papervision3d.cameras.FreeCamera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.materials.utils.MaterialsList;
public class test01 extends Sprite
{
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var scene:Scene3D;
private var camera:FreeCamera3D;
private var plane1:Plane;
private var plane2:Plane;
private var isFront:Boolean = true;
private var mc1:MovieClip=new MovieClip();
private var car:Collada;
private var mm:MovieMaterial;
private var mp1:BitmapFileMaterial;
private var mp2:BitmapFileMaterial;
private var loader:Loader=new Loader();
public function test01():void
{
viewport = new Viewport3D(1280,720);
renderer = new BasicRenderEngine ;
scene = new Scene3D ;
camera=new FreeCamera3D();
camera.y = 500;
camera.moveBackward(800);
addChild(viewport);
viewport.interactive = true;
loader.load(new URLRequest("y.jpg"));
loader.addEventListener(MouseEvent.CLICK,onInter1);
loader.addEventListener(MouseEvent.MOUSE_OVER,onInter2);
loader.addEventListener(MouseEvent.MOUSE_OUT,onInter3);
mm = new MovieMaterial(mc1,true,true);
mm.interactive = true;
plane1 = new Plane(mm,300,300);
mc1.graphics.beginFill(0xDDDDDD);
mc1.graphics.endFill();
mc1.addChild(loader);
loader.x = loader.y = 50;
loader.scaleX = loader.scaleY = 2;
mp1 = new BitmapFileMaterial("car.jpg");
mp2 = new BitmapFileMaterial("ca.jpg");
car = new Collada("car.xml",new MaterialsList({all:(mp1)}));
//car = new Collada("car.xml",new MaterialsList({all:new BitmapFileMaterial(mp1)}));
//car=new Collada("car.xml",mp1);
plane1.moveLeft(800);
plane1.yaw(0);
car.moveRight(100);
car.yaw(30);
scene.addChild(plane1);
scene.addChild(car);
addEventListener(Event.ENTER_FRAME,process);
}
public function onInter1(evt:MouseEvent):void
{
if (isFront)
{
car.material = mp2;
isFront = false;
}
else
{
car.material = mp1;
isFront = true;
}
}
public function onInter2(evt:MouseEvent):void
{
viewport.getChildLayer(plane1).buttonMode = true;
}
public function onInter3(evt:MouseEvent):void
{
viewport.getChildLayer(plane1).buttonMode = false;
}
private function process(evt:Event):void
{
car.rotationY = -((mouseX / stage.width) * 360);
renderer.renderScene(scene,camera,viewport);
}
}
}