flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● ck47阁下在讨论区里 发表新主题“新手问题...”(07:49:50)
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
浏览主题:PV3D中如何根据鼠标移动而移动Plane对象的一个边

PV3D中如何根据鼠标移动而移动Plane对象的一个边
YYuan (2009-11-04 15:23:44)

我想要在3D空间中的一个Plane,当鼠标位于Plane的一个边时,鼠标光标就变为双箭头,按下鼠标并拖动时,这个Plane的边就随鼠标移动,也就是Plane的大小在变化。想请教大家:这种功能怎么实现。
首先鼠标如何感应到位于一个Plane的边,对什么对象添加什么事件***************************。其次如何把鼠标的光标修改为双箭头或某个形状。 最后,如何即时修改Plane的一个边的位置,或者移动Plane的一个边。谢谢DDM君及各位


flash 3d 研究所 ericvan76
(2009-11-04 17:33:51)
为什么一定要感应边呢?你可以另画四条线作为边,然后在这四条线上加事件,接下来只要重画Plane就行了。

flash 3d 研究所 YYuan
(2009-11-05 02:25:28)
谢谢。想感应边的目的是找一个方便的编程办法而已。加四条边的办法挺好,虽然稍微编程麻烦些,那鼠标的问题解决了。剩下的问题就是在不重绘Plane的情况下,有没有能够直接修改或移动Plane的一条边的办法,因为我想即时拖动边时,相应地Plane也同时改变那个边,害怕重绘Plane会有太大闪动。

flash 3d 研究所 DDM君
(2009-11-05 15:21:44)
这个功能看起来简单,其实非常麻烦。 一般几何体的变化是通过scale来变化,但问题是很难让鼠标刚刚好与缩放的大小合拍。
而且缩放是,一个轴向的正负方向一起缩放,所以如果只是缩放一边,还需要在4个角上建立4个虚拟物体,然后更具情况让plane子级给各个角落上的虚拟物体,然后缩放这个虚拟物体达到只缩放一个方向的效果。

不知道这样解释能不能看懂^_^

flash 3d 研究所 ericvan76
(2009-11-05 15:26:52)
想要改变Plane的大小,貌似只有重画了,应该不会有闪动的。

其实PV3D只是提供了最最基本的一些物体,在实际使用过程中,最好还是根据各自的需求,再封装成一个自己的类来使用,在该类中加一个update方法,然后在这个方法中根据新的参数重画。

封装自己的类还有一个好处,代码的结构会比较强,以后如果要换到别的3D引擎的话,也比较容易修改。



flash 3d 研究所 YYuan
(2009-11-06 02:08:48)
谢谢DDM君和ericvan76。

我根据你们的建议做了一个用四个Line3D的线对象构成的矩形来响应鼠标,里面放一个Plane对象可以加各种材质。不知不用Plane对象能否在四个Line3D对象构成的矩形中填充材质。我想下来用Line3D的线对象响应鼠标后重新计算矩形的大小和位置,然后重绘Plane对象。希望如ericvan76所说的,Plane不会闪动。

不知DDM君说的“四个角上建立4个虚拟物体”是什么类型物体。另外你的最后两句话“然后更具情况让plane子级给各个角落上的虚拟物体,然后缩放这个虚拟物体达到只缩放一个方向的效果”,是否和我上面想的一致,能否介绍详细一些。

谢谢。


flash 3d 研究所 DDM君
(2009-11-06 16:20:06)
ericvan76的建议非常的好。
的确是这样,我们这里给初学者写的代码很简单,那是为了容易理解。要想更上一个级别的话,必须要多多熟悉AS和基本面对对象的理念,熟悉设计模式。

ps:
1) 虚拟物体就是个空DisplayObject3D.
2) “A子级给B”就是"B.addChild(A) "
3) line3D好像是没法自动填充内部的。

flash 3d 研究所 YYuan
(2009-11-07 03:12:37)
谢谢了,理解了,这样做应该没问题,就是挺麻烦的,呵呵。

flash 3d 研究所 DDM君
(2009-11-09 12:39:15)
呵呵,是的,不过多多练习,以后就很简单了。

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了