2012-04-06 95 views
0

我使用下面的代码创建了一个旋转立方体,并将位图添加为立方体的两侧。 我想知道是否可以将影片剪辑指定为立方体的两侧,以便我可以与它们进行一些交互。在3D立方体上添加一个动画片段并与其交互

import flash.events.Event; 
    import flash.display.Bitmap; 
    import flash.display.BitmapData; 

    import org.papervision3d.cameras.CameraType; 
    import org.papervision3d.materials.BitmapMaterial; 
    import org.papervision3d.materials.ColorMaterial; 
    import org.papervision3d.materials.WireframeMaterial; 
    import org.papervision3d.materials.utils.MaterialsList; 
    import org.papervision3d.objects.primitives.Cube; 
    import org.papervision3d.view.BasicView; 

      var cube : Cube;      
      var basicview : BasicView = new BasicView(640, 480, true, false, CameraType.FREE); 
      addChild(basicview); 
      var logo : Logo = new Logo(0,0); //Bitmapdata (jpeg) exported as class Logo from library 
      var matFront : BitmapMaterial = new BitmapMaterial(logo); 
      var matBack : BitmapMaterial = new BitmapMaterial(logo); 

      var ml : MaterialsList = new MaterialsList(); 

      ml.addMaterial(matFront, "front"); 
      ml.addMaterial(matBack, "back"); 
      ml.addMaterial(new ColorMaterial(0x551F92),"right"); 
      ml.addMaterial(new ColorMaterial(0x431872),"bottom"); 
      ml.addMaterial(new ColorMaterial(0x341359),"top"); 
      ml.addMaterial(new ColorMaterial(0x7429C7),"left"); 

      cube = new Cube(ml,200,200,200,5,5,5); 

      basicview.scene.addChild(cube); 
      basicview.camera.fov = 20;   

      addEventListener(Event.ENTER_FRAME, enterFrame);     
      function enterFrame(e:Event) : void 
      { 
       cube.yaw((320-mouseX)*0.01); 
       cube.pitch((240-mouseY)*0.01); 
      } 
      basicview.singleRender(); 
     } 

UPDATE

我添加此

var matFront : MovieMaterial = new MovieMaterial(new MV(),false,true); 
matFront.interactive = true ; 

MV仅仅是一个与此代码

package Scripts { 

    import flash.display.MovieClip; 
    import flash.events.*; 

    public class MV extends MovieClip 
    { 
     public function MV() 
     { 
      buttonMode = true; 
      addEventListener(MouseEvent.CLICK,traceFunction); 
     } 
     private function traceFunction(ev:MouseEvent) { 
      trace("clicked"); 
     } 
    } 
} 

为什么我没有任何互动,当我点击侧方与电影剪辑?

更新2

好,我觉得 我不得不添加此行

basicview.viewport.interactive = true; 

但是,即使影片剪辑的侧面是不可见的,为什么我有互动。

我该如何避免它?

+1

我相信Papervision已不在发展中,也没有维护。除了由Away3D等库提供的Stage3D提供的GPU硬件渲染性能外,您还可以通过当前的3D引擎获得更多关注。 – 2012-04-06 19:28:58

回答

1

是的,这是可能的,你必须从你想使用的影片剪辑创建材料,只要看看papervision3d materials Package里面的类MovieMaterialMovieAssetMaterial

+0

好的,放置MovieMaterial很容易,我如何与它交互?你能帮助我吗? – 2012-04-10 21:11:22

+1

从papervision.org网页看看本教程,我认为它可以帮助您:http://papervision2.com/advanced-interactivity/ – danii 2012-04-10 21:34:11

+0

感谢它帮助了我很多。还有一件事我必须来向上。 – 2012-04-10 22:47:38