这是我的另一个普遍问题,我现在陷入困境。我在服务器中进行了W3DS GetScene查询,并在观察器中将3D场景作为输出。现在我想在显示的对象上触发onclick函数,这样当我点击对象时,我可以得到它的id以及X,Y和Z方面的位置坐标,并用它来触发GetFeatureInfo请求。获取与被点击对象相关的属性表的背景。我遇到的部分是关于如何触发onclick事件或者让我说如何让服务器理解该对象已被点击。是否有必要让服务器具有预定义的功能,或者是否有任何其他方式通过适当的编码从客户端发起该功能。我在一些论文中读过我用于查看返回的3D场景的X3D播放器BsContact它自己的专有界面使用JavaScript修改场景但是我无法找到方法如何?提前感谢你。
答案 0 :(得分:0)
这不是关于X3DOM,而是关于X3D以及在X3D场景中路由事件的方式。
您必须在内部将TouchSensor节点定义为形状或变换节点的兄弟:<TouchSensor DEF="TCH"/>
然后你必须添加一个Script节点,设置它的子Field节点并提供一个JS文件或JS内容作为CDATA来描述这些字段的处理,如instantreality well written documentation
BS播放器中的JS与网页中的JS之间的交互在某种程度上没有得到很好的记录。但BitManagement有SDK和支持。据我所知,能够让双方互相通信是唯一可以通过点击向您发送服务请求的唯一方法,因为您已成功收听BS联络方。
几年前,我成功地与Octaga Player建立了这样的沟通: JS Octaga方面,JS网页方面和使用Lejos构建的Java小程序之间的双向通信,接收和发送订单到NXT机器人。
然而:您现在可以将X3DOM视为在Web上显示X3D内容的方式,因此直接避免JS(X3D播放器)与JS(网页)通信的任何问题。
然后,为了实现事件处理程序,我让你阅读这个other post on stackoverflow about handling click on an X3DOM shape