2012-04-06 24 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