PV3D之倒影加手型ReflectionView

昨天帮快乐小球球同学研究的PV3D中的倒影实现。残酷天使告诉我PV3D中倒影有自带的类ReflectionView
原文参见http://www.horidream.com/blog/?p=57
快乐小球说到的手型问题 我试了下直接在视窗上加buttonMode=true就可以了 不知道这样会有何不妥。

 

  1. package {
  2. import caurina.transitions.Tweener;
  3. import flash.events.Event;
  4. import org.papervision3d.materials.MovieAssetMaterial;
  5. import org.papervision3d.objects.DisplayObject3D;
  6. import org.papervision3d.objects.primitives.Plane;
  7. import org.papervision3d.core.effects.view.ReflectionView;
  8. import org.papervision3d.events.InteractiveScene3DEvent;
  9. public class PV3D extends ReflectionView
  10. {
  11. private var flag:Boolean;
  12. private var plane:DisplayObject3D;
  13. private var Material:MovieAssetMaterial=new MovieAssetMaterial("Photo1");
  14. public function PV3D()
  15. {
  16.   super(550,400,false,false);
  17.   init();
  18.   surfaceHeight = -120;//向下120,这个参数始终是以舞台正中间的为起点
  19.   this.addEventListener(Event.ENTER_FRAME,enterFrame);
  20. }
  21. private function init():void{
  22.   Material.interactive=true;//设置材质交互为true
  23.   Material.allowAutoResize=true;//设置自适应
  24.   Material.doubleSided=true;//默认是单面的。
  25.   plane =new Plane(Material,285,400,4,4)
  26.   plane.y=150;//如果不稍微抬高一点的话,可能会让其倒影超出舞台,或者向下120是不够滴
  27.   scene.addChild(plane);
  28.   viewport.interactive=true;
  29.   viewport.buttonMode=true;//出现手型
  30.   plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, pressHander);
  31.   scene.addChild(plane);
  32. }
  33. private function pressHander(e):void
  34. {
  35.   Tweener.removeAllTweens();
  36.   flag=!flag;
  37.   if(flag)
  38.   {
  39.    Tweener.addTween(plane,{rotationY:720,scaleX:2,scaleY:2,time:3})
  40.   }else{
  41.    Tweener.addTween(plane,{rotationY:0,scaleX:1,scaleY:1,time:3})
  42.   } 
  43. }
  44. private function enterFrame(e:Event):void{
  45.   singleRender();//渲染器
  46. }
  47. }
  48. }

Tags:PV3D  Papervision3D  

1 Comment so far

  1. 快乐小球球 on 2009-2-27 19:37:24

    很感谢大哥为我写了个教程


    回复该留言


Leave a reply