【问题标题】:Displaying aframe results in: IO3D is not defined显示 aframe 会导致:IO3D is not defined
【发布时间】:2017-08-03 14:36:44
【问题描述】:

尝试嵌入演示场景时:https://3d.io/docs/api/1/aframe-components.html - 我收到此错误:

Uncaught (in promise) ReferenceError: IO3D is not defined
    at i.update (3dio.js:13912)
    at i.updateProperties (component.js:267)
    at HTMLElement.value (a-entity.js:539)
    at e (a-entity.js:513)
    at Array.forEach (<anonymous>)
    at HTMLElement.value (a-entity.js:495)
    at a-entity.js:306
    at a-node.js:117
    at <anonymous>

库已加载。我可以成功拨打 f.e.
IO3D.utils.services.call('Model.search', {...})

所以我觉得缺少显示框架组件的一些非常基本的东西?

我的环境:
https://3d.io1.0.0-beta.22 (@master #274adf0 2017/08/02 10:16)
三.WebGLRenderer 84
A-Frame 版本:0.6.0(日期 30-06-2017,提交 #34d1988)
WebVR Polyfill 版本:^0.9.35

编辑:
通过脚本标签添加库就可以了!
非常感谢@geekonaut!

【问题讨论】:

  • 您能发布完整的 HTML 代码或 JSFiddle 吗?
  • @geekonaut 感谢您的快速回复。没那么容易。我尝试在反应组件中呈现 a-frame-components。通过 npm 添加 lib 并像 import * as IO3D from '3dio/build/3dio' 一样导入它,这适用于 api-requests。在标头中添加了 aframe-lib:&lt;script src="https://aframe.io/releases/0.6.0/aframe.min.js"&gt;&lt;/script&gt;。 Webpack 抛出一个关于 iconv-loader 的严重错误,它是 3dio 的依赖项:./node_modules/encoding/lib/iconv-loader.js Critical dependency: the request of a dependency is an expression 也许这就是问题所在?
  • 应该没有问题,是否有任何控制台消息说找到了框架并且组件已被禁用?尝试通过脚本标签单独加载库 aframe被加载后看看是否有区别?
  • Iconv-loader 肯定不是问题。
  • 它绝对不是来自 io3d,我们没有将其作为依赖项。我会尝试在 aframe 之后通过脚本标签加载 io3d.js,看看我是否会有所作为。并检查有关禁用 aframe.io 功能的控制台日志。

标签: aframe archilogic 3d.io


【解决方案1】:

如果您使用的是 npm 版本的 io3d,请确保在加载 io3d 之前导入 A-Frame。

控制台中应该有一条提示行为的消息: AFRAME library not found: related features will be disabled.

由于该库可以在服务器端和客户端使用,它会检测 A-Frame 是否存在,并且仅在出现这种情况时注册组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多