0

这是我的另一个一般问题,我被困在这一点上。我在服务器中进行了 W3DS GetScene 查询,并在查看器中获得了 3D 场景作为输出。现在我想在显示的对象上触发 onclick 函数,这样当我点击对象时,我可以获得它的 id 以及 X、Y 和 Z 方面的位置坐标,并使用它来触发 GetFeatureInfo 请求background 获取点击对象相关的属性表。我被卡住的部分是关于如何触发 onclick 事件,或者说我怎样才能让服务器了解该对象已被单击。服务器是否有必要预先定义功能,或者是否有任何其他方法可以通过适当的编码从客户端启动该功能。

4

1 回答 1

0

这完全不是关于 X3DOM,而是关于 X3D 以及在 X3D 场景中路由事件的方式。

  • 您必须在内部定义一个 TouchSensor 节点作为形状或变换节点的兄弟节点:<TouchSensor DEF="TCH"/>

  • 然后你必须添加一个 Script 节点,设置它的子 Field 节点,并提供一个 JS 文件或 JS 内容作为 CDATA 来描述这些字段的处理,如instantreality wellwritten documentation中所述

BS播放器中的JS与网页中的JS之间的交互不知何故没有很好的记录。但是 BitManagement 有 SDK 和支持。据我所知,能够让双方相互通信是在点击时向您的服务器发送请求的唯一方法,因为您成功收听了 BS Contact 方。

几年前,我成功地用 Octaga Player 创建了这样的通信:JS Octaga 端、JS 网页端和用 Lejos 构建的 java 小程序之间的双向通信,接收和发送订单给 NXT 机器人。

但是:您现在可以将 X3DOM 视为在 Web 上显示 X3D 内容的方式,因此直接避免了 JS(X3D 播放器)与 JS(网页)通信的任何问题。

然后,为了实现事件处理程序,我让您阅读stackoverflow 上关于处理 X3DOM 形状上的点击的另一篇文章

于 2013-04-01T16:01:10.483 回答