- 最后登录
- 2018-12-19
- 注册时间
- 2012-8-20
- 阅读权限
- 90
- 积分
- 54706
- 纳金币
- 32328
- 精华
- 41
|
1 关于旋转 注意DisplayObject3D和SceneObject3D同是DisplayObjectContainer3D的子类,所以他们都是3D容器。每个3D对象的旋转方法都是绕自身的轴,和容器没有关系,即使他不在容器坐标系的中心。要令对象绕容器轴旋转(比如对象移动到原点以外),可以使用一个DisplayObject3D对象做容器并旋转此容器。
2 camera 由于继承,也有上述类似方法。以及pan() tilt() hover()等。focus属性为焦距,zoom属性为缩放,绝对值越小像越小。也可以使用诸如TweenMax类实现缓动效果,不过由于坐标问题对贝塞尔曲线不支持。
3 鼠标交互 要让3D对象能响应鼠标事件,首先需要viewport对象和material对象能接受交互。对于viewPort3D,new的时候指定第4个参数(interactive:Boolean = false)为***e,对于material对象(也可以通过引用3D对象的material属性),需要指定他的interactive属性为***e。
然后可以在3D对象上使用addEventListener()方法为诸如InteractiveScene3DEvent.OBJECT_CLICK事件注册侦听处理函数。InteractiveScene3DEvent是最常用的鼠标交互事件对象,可以使用target属性确定事件目标。
4 鼠标 通常在处理函数中会用到鼠标位置,这里的鼠标有两套坐标:空间坐标(Mouse3D)、材质实际坐标(VirtualMouse)。而这两个对象分别是:
viewport.interactiveSceneManager.virtualMouse //相对于贴图材质左上角
viewport.interactiveSceneManager.mouse3D //相对于3D场景原点
使用这两个对象的xyz / xy属性即可获得所需信息。例如可以在InteractiveScene3DEvent.OBJECT_MOVE事件处理函数中在材质上绘图。 InteractiveScene3DEvent的x y属性和virtualMouse对象的x y属性效果相同。 【来源:互联网】
更多精彩教程,尽在web3D纳金网http://www.narkii.com/college/ |
|