PV3D之倒影加手型ReflectionView
昨天帮快乐小球球同学研究的PV3D中的倒影实现。残酷天使告诉我PV3D中倒影有自带的类ReflectionView。
原文参见http://www.horidream.com/blog/?p=57
快乐小球说到的手型问题 我试了下直接在视窗上加buttonMode=true就可以了 不知道这样会有何不妥。
- package {
- import caurina.transitions.Tweener;
- import flash.events.Event;
- import org.papervision3d.materials.MovieAssetMaterial;
- import org.papervision3d.objects.DisplayObject3D;
- import org.papervision3d.objects.primitives.Plane;
- import org.papervision3d.core.effects.view.ReflectionView;
- import org.papervision3d.events.InteractiveScene3DEvent;
- public class PV3D extends ReflectionView
- {
- private var flag:Boolean;
- private var plane:DisplayObject3D;
- private var Material:MovieAssetMaterial=new MovieAssetMaterial("Photo1");
- public function PV3D()
- {
- super(550,400,false,false);
- init();
- surfaceHeight = -120;//向下120,这个参数始终是以舞台正中间的为起点
- this.addEventListener(Event.ENTER_FRAME,enterFrame);
- }
- private function init():void{
- Material.interactive=true;//设置材质交互为true
- Material.allowAutoResize=true;//设置自适应
- Material.doubleSided=true;//默认是单面的。
- plane =new Plane(Material,285,400,4,4)
- plane.y=150;//如果不稍微抬高一点的话,可能会让其倒影超出舞台,或者向下120是不够滴
- scene.addChild(plane);
- viewport.interactive=true;
- viewport.buttonMode=true;//出现手型
- plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, pressHander);
- scene.addChild(plane);
- }
- private function pressHander(e):void
- {
- Tweener.removeAllTweens();
- flag=!flag;
- if(flag)
- {
- Tweener.addTween(plane,{rotationY:720,scaleX:2,scaleY:2,time:3})
- }else{
- Tweener.addTween(plane,{rotationY:0,scaleX:1,scaleY:1,time:3})
- }
- }
- private function enterFrame(e:Event):void{
- singleRender();//渲染器
- }
- }
- }
很感谢大哥为我写了个教程
回复该留言