gltf 光标侦听器 A 框架中的单击事件

2023-12-04

我无法弄清楚为什么游标侦听器适用于除我的 gltf 模型之外的所有实体。

这是我的html

<div id="myEmbeddedScene">
  <a-scene embedded="">
    <a-assets>
          <a-asset-item id="ducks" src="../images/test.glb"></a-asset-item>
    </a-assets>

    <a-box cursor-listener color="#CCC" width="3" depth="3" height="0.1" position="0 0 -2"></a-box>

    <a-entity cursor-listener id="duck" gltf-model="#ducks" position="0 0.1 -2" rotation="0 -90 0"></a-entity>

    <a-camera>
      <a-cursor></a-cursor>
    </a-camera>

  </a-scene>
</div>

这是来自 a-frame 的光标监听器组件

AFRAME.registerComponent('cursor-listener', {
    init: function () {
            this.el.addEventListener('click', function (evt) {
            console.log('I was clicked');               
        });
  }
});

控制台日志对于盒子实体来说效果很好,但对于 gltf 模型则不然。请问有人可以提供建议吗?


你已经遇到了此处描述的问题:模型加载后,用于检测点击的光线投射器需要刷新,以便它了解模型。

我们有一个更强大的解决方案即将推出对于 A-Frame 0.8.0,但与此同时,您可以通过以下方式解决该问题:

AFRAME.registerComponent('raycaster-autorefresh', {
  init: function () {
    var el = this.el;
    this.el.addEventListener('model-loaded', function () {
      var cursorEl = el.querySelector('[raycaster]');
      cursorEl.components.raycaster.refreshObjects();
    });
  }
});

然后您需要添加raycaster-autorefresh到你的场景元素。这里有一个Codepen 显示解决方案.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gltf 光标侦听器 A 框架中的单击事件 的相关文章

  • jQuery 点击事件多次触发

    我正在尝试用 Javascript 编写一个视频扑克游戏 作为了解其基础知识的一种方式 但我遇到了 jQuery 单击事件处理程序多次触发的问题 它们附在用于下注的按钮上 并且在游戏过程中第一手牌下注时效果很好 仅触发一次 但在第二手牌的投
  • 阻止 iOS 中 UITextField 光标闪烁

    有没有办法阻止光标在 UITextField 中闪烁 我知道你可以使用 UITextField resignFirstResponder and UITextField setEnabled NO 但我想保持键盘在屏幕上可见 Thanks
  • 如何使图像表现得像文件输入?

    单击默认照片时 用户应该从计算机中选择一个文件 而不是制作一个文件input type file 这使得用户首先单击浏览按钮而不是选择文件 用户应直接单击默认照片 然后会出现一个文件选择窗口
  • javascript:长按书签

    我需要识别 JavaScript 书签中的长按 所以 我不能使用 jQuery 也不能使用 onclick 事件和类似事件 这可能吗 如何实现 onmousedown call setTimeout 在长按期间 如果允许超时 它将调用其函数
  • 如何在代码隐藏中向椭圆添加点击事件?

    要在后面的 C 代码中向按钮添加单击事件 我可以这样做 Button btn new Button btn Click btn Click 如果我有一个不包含 Click 的椭圆怎么办 Ellipse e new Ellipse e e C
  • GAE 数据存储游标是否永久且持久?

    这么说是否正确com google appengine api datastore Cursor只是将索引位置存储到 GAE 数据存储索引中 游标耐用吗 也就是说 我可以永久存储游标并一次又一次地重复使用它 并确定如果它指向索引中的第 50
  • jQuery鼠标的.click()是通过键盘导航启动的

    我发现 jQuery 的奇怪行为click事件 如果我们使用键盘导航 辅助功能情况 则通过 Enter 或 Space 启动单击 这取决于我们使用的是哪个 HTML 元素 jsfiddle 上有一个测试页面 您可以尝试在结果框架中使用键盘导
  • 为什么 ASP.NET DropDownList 控件需要单击两次才能在 Internet Explorer 中展开

    我有一个 ASP NET DropDownList 控件 它呈现到页面上的下拉列表 选择 HTML 标记 中 由于某种原因 当我使用 Internet Explorer 时 需要单击两次才能打开它并查看选项 这对最终用户来说只是额外的单击
  • A-Frame:如何在 _blank 页面中打开动态创建的 a-link

    这是 A 型框架特有的 我正在从 javascript 代码创建一个 a link var alinkEl document createElement a link alinkEl setAttribute href http www f
  • C# - 平移光标

    我正在 PictureBox 控件中实现大图像的平移 并且设置适当的方向平移光标没有问题 但是 我似乎找不到用于平底锅原点的图像 内部带有箭头的圆圈 我在哪里可以找到它 我觉得image您正在寻找的内容未包含在框架中 每个应用程序都使用自己
  • 有没有办法模拟小部件或屏幕特定位置的触摸?

    我想触摸或点击小部件上的某处 而不让用户在此时明确触摸屏幕 有什么办法可以做到吗 我已经检查了SO答案 有些人建议使用 集成测试 但在未物理或以某种方式连接到笔记本电脑的设备上无法执行 集成测试 无法找到更好的措辞 我还尝试进行 hitTe
  • 将 USD 模型转换为 GLTF 文件格式 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在寻找一种转换的方法 usdc usda usdz文件到 gltf使用命令行 Python 节点等等 到目前为止 一直在研究每个
  • 如何在 A-Frame 中从内存中释放纹理?

    我想知道如何从特定场景中不再需要的资源中释放内存 目前 在场景中卸载资源后 我们的资源纹理仍保留在内存中
  • 如何从我的android联系人列表中的人名获取电话号码

    我想从我的联系人列表中的人名中获取他的电话号码 我已经使用了下面的代码 但它不能正常工作 告诉我我哪里错了 try cursor company getContentResolver query ContactsContract Data
  • 如何在 Aframe 中的平面上加载 gif(具有透明度)(故障)?

    大家好 我是 Aframe 的新手 正在尝试在空间网络环境中设置一大堆 gif 我在飞机上加载 gif 时遇到了一些困难 我已经通过 Aframe 的资产文件夹加载了图像 故障 目前它看起来像这样
  • 在 jFrame 中启用右键单击

    嘿 我正在寻找如何使用 NetBeans 在 jFrame 中启用 仅且仅 右键单击并显示弹出菜单 使用我的代码 private void formMouseClicked java awt event MouseEvent evt pop
  • svg路径指针事件-点击检测

    我正在编写一些 HTML 以便可以使用 HTML SVG 和 PATH 标签绘制贝塞尔曲线 我的曲线效果非常好 现在我想添加一项功能 如果用户将鼠标悬停在曲线上 我会更改颜色 但实际情况是 SVG 创建了一个包含路径的大框 并捕获所有点击
  • 将 FBX 文件转换为 .gltf 后,模型非常小,为什么?

    问题 将 FBX 文件转换为 gltf 后 模型非常小 为什么 我尝试用以下方法缩放模型frontObject scale set 1000 1000 1000 但我收到以下错误 TypeError Cannot read property
  • CasperJS:如何单击所有选定的按钮?

    我正在尝试使用 CasperJS 作为网络抓取工具 并且有一个带有按钮的页面 单击该按钮将加载数据 因此 我想先单击所有这些按钮 然后等待 然后再实际进行查询以获取所有必要的数据 问题是对于 Casper casper thenClick
  • 如何避免使用 Cursor 来实现此伪代码 - SQL Server

    CREATE PROCEDURE p processDataFor accountId BEGIN for each item in select from Accounts where accountId accountId and is

随机推荐

  • 分叉/连接节点对令牌的行为与活动图的其他节点之间的差异

    As 托马斯 基利安描述here 带有令牌的活动图节点的正常行为是 当一个节点有所有传入的数据时 该节点就会变为活动状态InformationFlow connectors令牌已到达 当节点完成时 它会沿着所有传出信息流连接器发送单个令牌
  • 如何创建批处理文件来创建网页的快捷方式

    我想创建一个批处理文件 在桌面或开始菜单中创建快捷方式 该快捷方式需要打开一个网页 该网页是本地 Windows 服务器 IP 地址 例如 http 192 168 81 我还想为快捷方式提供自定义图像图标 我知道这是一个旧线程 但它是 G
  • 如何获取用户的国家信息

    基本上 我需要在应用程序启动时识别用户所在的国家 地区 并根据他 她的国家 地区在我的应用程序中启用或禁用基于位置的功能 我需要在加载 RootViewController 之前在应用程序委托中尽快执行此操作 无论如何 iPhone SDK
  • IE 的 Selenium WebDriver 错误

    我正在尝试使用 selenium webdriver junit 和 ant build 来自动化测试用例 从早上开始我就收到了奇怪的错误 测试用例包含按钮单击命令 测试在 Chrome 和 FF 上运行成功 但在 IE 上运行失败 早些时
  • 将自定义声明添加到 AspNetCore Azure 经过身份验证的应用程序

    我正在使用 AspNetCore 模板授权与这行代码 services AddAuthentication AzureADDefaults AuthenticationScheme AddAzureAD options gt Configu
  • 多对多关系对象上的 FluentNHibernate 查询

    由于某种原因 我无法正确执行此查询 而且我不明白为什么 我有一个名为 博客 的对象 它有一个 ID 和一个 标签 列表 每个 标签 都有一个 id 和一个 名称 属性 由于这是多对多关系 我有另一个名为 blog tags 的表来连接它们
  • 循环设置对选定的 Outlook 文件夹的监视

    我正在 Outlook 中的 VBA 中执行以下操作 将 Outlook 项目拖到指定文件夹后 我将此 Outlook 项目保存到我的计算机 即文件系统 Private WithEvents Items As Outlook Items P
  • 在 Freepascal 编译的 DLL 和 Delphi 编译的 EXE 之间交换字符串 (PChar)

    经过大量实验 我找到了一种将 FreePascal 编译的 DLL 中的 PChar 与 Delphi 编译的 EXE 交换的方法 我负责 DLL 和 EXE 源代码 但其中一个必须在 FreePascal 中 另一个在 Delphi 中
  • 创建平铺多维数组,同时删除 axis0 第 I 个索引的子元素?

    我试图平铺一个数组 其中每个索引都是多维的 然后我从每个索引中删除第 i 个子元素 例如 从这个数组开始 gt gt gt a np array 1 7 0 2 7 0 3 7 0 gt gt gt a np tile a a shape
  • 如何在 Perl 中对浮点数进行四舍五入?

    如何将小数 浮点 四舍五入到最接近的整数 e g 1 2 1 1 7 2 输出perldoc q round Does Perl have a round function What about ceil and floor Trig fu
  • JavaScript if 语法

    当我尝试运行简单的 if 语句时出现语法错误 中断此错误 左侧赋值无效 中断此错误 容器 我有什么问题 以及我如何制作 if this ewCount 0 then elseif NotDoneh 0 then ELSE 这是我当前的代码
  • 音频文件获取左/右声道

    经过大量研究 我找不到明确的答案 我想要实现的是 取一个mp3 wav文件并将其左右声道保存为2字节 然后我可以操作每个通道 然后再次将它们添加并创建一个新的 wav 文件 最好是Java的解决方案 相关问题是分割CHANNEL IN ST
  • 在 Fabric.js 中全屏显示画布

    我希望我的画布元素始终具有相同的大小 独立于客户端的屏幕分辨率 如果用户使用浏览器进行缩放 则画布元素应始终具有相同的大小 此外 纵横比应始终相同 我想要 1920 1080 点的坐标空间 如果浏览器没有相同的比例 则画布元素的侧面可能有边
  • 如何使用 date-fns 更正时区?

    网上看这个例子 https stackblitz com edit date fns playground zeitzonen file index ts gt 控制台输出 以下情况 时间为上午 11 54 Setup const date
  • pythonic 方法在没有索引变量的情况下执行 N 次某事? [复制]

    这个问题在这里已经有答案了 我有一些代码 例如 for i in range N do something 我想做某事N次 循环内的代码不依赖于i 是否可以在不创建无用的索引变量的情况下完成这个简单的任务 或者以其他更优雅的方式完成 如何
  • 迭代 list_iterator 两次[重复]

    这个问题在这里已经有答案了 我希望迭代 list iterator 两次 当我当前尝试执行此操作时 迭代器没有任何内容可在第二次迭代 我可以重置它吗 l iter 1 2 3 4 for i in l print i for i in l
  • Xamarin Forms Shell TitleView 不使图像居中

    我有一个在 Xamarin Forms 中使用新 Shell 的应用程序 我将以下代码添加到我的页面之一 试图使用 TitleView 区域居中显示我的应用程序标题图像 仅供参考 我已经尝试过居中对齐这两个选项 但没有什么区别
  • 为什么通过括号访问Symbol.iterator?

    例如 如果我创建了一个数组 var array 1 2 3 4 返回一个迭代器我会做var iterator array Symbol iterator 我不明白为什么你通过括号访问 Symbol iterator 属性 为什么不只是arr
  • Android Studio C++ NDK 库示例

    我想下载一些使用 C 或 C 的 Android Studio NDK 项目的工作示例 它将被编译为 so 库 或我可以从中提取 so 的 APK 我已经尝试过使用 Android mk 构建 ndkbuild 以及使用 CMakeList
  • gltf 光标侦听器 A 框架中的单击事件

    我无法弄清楚为什么游标侦听器适用于除我的 gltf 模型之外的所有实体 这是我的html div div