Feb 24
PV3D之视窗交互事件InteractiveScene3DEvent
PV3D
先来看下这个例子,鼠标点击后翻转平面。
这里面有以下几个知识点:
1:InteractiveScene3DEvent 有了它才能使3D场景中的物体产生类似MC一样的点击事件等等。
2:Tweener 这是我常用的缓动类,当然这篇中也可以不用,不过学会用好它是很无敌的。
3:对 MovieAssetMaterial Plane的浅度了解
4:camera.focus*camera.zoom = plane.z + Math.abs(camera.z) 无敌的相机公式
- package {
- import caurina.transitions.Tweener;
- import org.papervision3d.events.InteractiveScene3DEvent;
- import org.papervision3d.materials.MovieAssetMaterial;
- import org.papervision3d.objects.DisplayObject3D;
- import org.papervision3d.objects.primitives.Plane;
- public class Devent extends PaperBase
- {
- private var Material:MovieAssetMaterial=new MovieAssetMaterial("Photo1");//Photo1是库面板中mc的ID
- private var plane:DisplayObject3D;
- private var flag:Boolean=false;
- public function Devent():void
- {
- init(700,450);
- }
- override protected function init3d():void
- {
- Material.interactive=true;//设置材质交互为true
- Material.allowAutoResize=true;//设置自适应
- Material.doubleSided=true;//默认是单面的。
- plane =new Plane(Material,285,400,4,4)
- //有关plane的几个参数建议仔细阅读下API,我就犯了个不小的错误,第2,3个参数是材质的长宽,
- //第4 5参数由于我一开始不知道他的作用 胡乱写,结果导出后它居然是占用CPU的罪魁祸首。
- //天使给我解释后才明白,4*4相当于分成横纵的16个小切面,切面越多越精确当然也越耗CPU。
- default_scene.addChild(plane);
- viewport.interactive=true;
- //这个一开始以为只要给材质添加上交互为true,plane是在窗口里面的,所以很显然的逻辑。
- default_camera.moveForward(650);//为什么要把相机向前移动,为什么参数是650.
- //无敌的相机公式能让我们得到这个650,这样就可以使得材质渲染尺寸和我们实际需要的尺寸一样大了
- plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, pressHander);
- }
- private function pressHander(e):void
- {
- Tweener.removeAllTweens();
- flag=!flag;
- if(flag)
- {
- Tweener.addTween(plane,{rotationY:180,time:3})
- }else{
- Tweener.addTween(plane,{rotationY:0,time:3})
- }
- }
- }
- }
在此要特别感谢“残酷天使”的孜孜不倦的帮助。让我在学习前沿技术的道路上坚定了信心。
2009-4-13 16:14:54 回复该留言
上面的 Photo1 是个元件,那么怎么才能在as类中引入呢?
还有你是用的flash cs3在开发还是 flex 或者 flex pluging for eclipse
我用的是最后那个,那么在eclipse中怎么引入 Photo1 这个元件?
2009-4-13 16:40:59 回复该留言
我用的是flash cs3的直接右键添加连接名。在flex中导入元件要在flash中发布成swc 然后在flex中导入才能用。至于你说的flex pluging for eclipse 既然是flex 插件 应该原理和flex中导入过程一样吧,我没用过
2010-7-6 0:45:50 回复该留言
博主强大,我是初学者,吸引我的是RIO。
深入之后有机会再找您探讨,我说的是PV3D,哈哈~