| 苹果 (2008-11-25 13:55:03) |
如何精确获得鼠标点击的三维坐标呢,DDM 你们有好的解决方案吗? |
|
| Justin (2008-11-25 14:16:05) |
貌似用Mouse3D可以确定~~请问怎么激活手型鼠标呢?貌似没有buttonMode这个属性~~ |
|
| kevin (2008-11-25 14:46:13) |
我们就是在获取三维坐标这个方面在努力呢 主要是靠向量相交来判断 还是有一定难度 因为二维鼠标是不可能明确表达具体在什么空间位置的 必须要靠一些限制 目前还不能准确的获取 希望之后能有所有收获 回justin: Mouse3D获取的数据有点不正确,特别是平凡转动摄像机的时候。 什么叫手型鼠标呢?变成点击的形态吗?那个需要自己设置呢 呵呵 |
|
| Justin (2008-11-25 15:49:35) |
比如上面的演示,鼠标移动到小球上,鼠标变成点击状态~~我看了下,材质和do3d都没有buttonMode~~是不是要加入viewportLayer才行? |
|
| 苹果 (2008-11-25 16:11:00) |
多谢,这个问题困扰了我N久啊 获取的三维坐标总是有误差,而且误差是随机的,不是固定的,所以没办法补偿 希望你们能够找到合适的方法 加油! |
|
| kevin (2008-11-25 16:42:54) |
to justin:这个。。。把鼠标隐藏然后替换成自己的鼠标图标应该就可以解决吧 当鼠标碰到任何物体的时候设置成自己的图标就可以了 应该不复杂的 算是个flash自己的功能嘛 呵呵 加入viewportlayer也是没有用的,不会自动变成手 |
|
| DDM君 (2008-11-25 17:18:08) |
嗯 不会变成手的 因为虽然很像movieclip,但实际上并不是movieclip,没有继承至movieclip,只是简单的bitmap而已。 |
|
| yzhkof (2008-12-04 20:20:04) |
我想问问在2.0之前的 plane.container.buttonMode=true 是不是不能用了? |
|
| DDM君 (2008-12-07 14:21:10) |
buttonMode是as3本来的方法,所以只要是sprite就可以用。 pv3d里想要用,只要保证是个sprite就行,比如:viewportlayer |
|
| martin (2008-12-16 16:40:06) |
为什么在flash里编译总是造成flash卡死,而用flash develop编译就正常?? |
|
| fur3 (2008-12-16 19:24:35) |
要初始,编译和输出的东西太多了,每次用export movie就不会每次死了,不要按ctrl+enter |
|
| yjrl (2009-01-19 10:28:33) |
我前两天都卡的要死。然后只能是任务管理器开出来直接关掉,最近我用调试,这样也是可以的,可以试下~~~ |
|
| winky (2009-01-21 14:02:45) |
DDM君的PV3D入门教程很不错~~~ 在PV3D中如果要获得鼠标手形,只需: viewport.buttonMode = true; 加在viewport = new Viewport3D(400, 400);之后,无须考虑的更复杂。。。 |
|
| furry (2009-01-21 17:49:58) |
整个视窗获得手型很简单,但是正确的地方获得手型其实不是那么简单的。这篇教程有讲 http://www.flab3d.com/tutorial.php?top=t16buttonmode |
|
| miyuki04 (2009-02-18 16:09:31) |
键盘交互呢? |
|
| DDM君 (2009-02-25 15:44:22) |
键盘交互和平常二维flash的时候一样的呢^_^ |
|
| gerrile (2009-03-01 17:19:44) |
用BitmapFileMaterialList贴图的物体怎样捕获鼠标事件? |
|
| fur3 (2009-03-02 11:30:09) |
MaterialList需要贴图为‘all’才能捕获,目前很难多张贴图捕获 |
|
| lonelyglone@126.com (2009-06-23 20:32:04) |
十分感谢楼主 在这个类库下,Papervision3D_2.0.883.zip,楼主的好几个例子都无法运行,这个应该比楼主的新,而我用楼主的傻瓜包,学习《超简易papervision3D基础 第六篇 超简易鼠标交互》用flash软件一编译就挂了。不知道是怎么回事。我用的是flashcs4 |
|
| davy (2009-06-30 16:57:03) |
GAY?LESBIAN?。。。 这俩词儿选的好^_^ |
|
| nodep (2009-08-17 16:33:19) |
有什么办法可以让导入的模型来捕获鼠标事件不?我写的测试代码如下,但是失败了。 package { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.FreeCamera3D; import org.papervision3d.events.FileLoadEvent; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.materials.BitmapFileMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.parsers.Collada; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import org.papervision3d.view.layer.ViewportLayer; public class pv3d003 extends Sprite { private var viewport:Viewport3D; private var renderer:BasicRenderEngine; private var scene:Scene3D; private var camera:FreeCamera3D; private var plane:Plane; private var car:Collada; private var layer1:ViewportLayer; private var layer2:ViewportLayer; private var bitmapL:BitmapFileMaterial; private var bitmapR:BitmapFileMaterial; public function pv3d003():void { viewport=new Viewport3D(400,400); renderer=new BasicRenderEngine(); scene=new Scene3D(); camera=new FreeCamera3D(2,200); camera.y=1000; camera.moveBackward(2000); addChild(viewport); bitmapR = new BitmapFileMaterial("org/131610bfff.jpg"); bitmapL = new BitmapFileMaterial("org/map_car.jpg"); bitmapR.interactive = true; bitmapL.interactive = true; plane=new Plane(bitmapR,10000,10000,8,8); plane.pitch(90); scene.addChild(plane); bitmapL.interactive = true; car=new Collada("org/car.XML",new MaterialsList({all:bitmapL})); car.addEventListener(FileLoadEvent.LOAD_COMPLETE,onloaded); plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK,clickHandler); car.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK,clickHandler); bitmapL.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK,clickHandler); this.addEventListener(Event.ENTER_FRAME,process); this.viewport.interactive = true;//设置交互为真 } private function onloaded(evt:FileLoadEvent):void { // car.moveLeft(2000); car.moveUp(50); scene.addChild(car); // viewport.containerSprite.sortMode = ViewportLayerSortMode.Z_SORT;//按照"z"轴自动排列层 // layer1 = viewport.getChildLayer(car);//加入到层管理,解决破面问题 // layer2 = viewport.getChildLayer(plane); trace("添加事件监听事件"); // var filter:BlurFilter = new BlurFilter(1,1);//给某个层加入模糊效果,效果值的大小直接影响到速度 // layer2.filters = [filter]; } private function process(evt:Event):void { if (car) { car.rotationY+=1; car.moveForward(10); camera.lookAt(car); } renderer.renderScene(scene,camera,viewport); } public function clickHandler(evt:InteractiveScene3DEvent):void { this.car.scale += 0.5; trace("click event live"); } } } |
|
| 阿门兔 (2009-11-28 18:20:59) |
如果小球的材质图片存放的路径值 我存放在xml中。 我点击小球后,有没有办法获得这个小球的图片的名字或者其他信息? |
|
| conanwsz (2010-03-08 21:53:14) |
请问,如何在 InteractiveScene3DEvent.OBJECT_MOVE 时, 让他变成手型鼠标?不能用传统的 xxx.buttonMode=true; |
|
| conanwsz (2010-03-08 21:58:56) |
看到上面的答案了,不好意思。 |
|
| J8Cat (2010-04-04 17:23:23) |
导入的模型不能相应这个事件! |
|
| Berlinbai (2010-07-08 15:28:01) |
为什么紫色的那个球名字叫Gay? |
|
| kiifa (2010-12-11 17:10:28) |
回kevin 要如何隱藏鼠標的圖呢?? winky為什麼用Viewport碰到物體卻會變成手型鼠標呢?? Viewport不是 視窗口嗎??那因該是滑鼠移動到視窗口就馬上變了呀.... |
|
(2011-06-01 16:18:03) |
请问,为什么球只能点击一次,再点击就不能放大?如果要每点击一次都放大怎么做? |
|
| Lawliet (2011-11-03 21:25:06) |
我用的版本是2.1,里面没有FreeCamera这个类,我就用了Camera代替。里面没有orbitY(),不过有一个orbit(),我用了,但Camera没有旋转= =,求帮助。 |
|
|