Aframe 没有注册组件

Aframe not registering component

我是一名老师,class 正在使用 Aframe 创建 VR 网站。我的一个学生遇到了一个问题,他无法让他的导航正常工作以将用户带到不同的页面。

他在JS中使用的代码是:

AFRAME.registerComponent('schoolMap', {
    init: function () {
        let redirect = () => {
            window.location.href = "schoolMap.html";
        }; //link

        this.el.addEventListener('click', redirect);
    } //init
}), //end

此代码是作为示例给出的,与我设法制作的工作代码完全相同。脚本已导入,组件已添加到实体上。

<a-entity id="main map" position="-0.11914 2.775 -1" rotation="0 45 0" schoolMap>

当我在检查器视图中查看他的网站时,它显示该实体没有附加任何组件,尽管组件已在实体上注册,如上所示。

'main map' entity with no components attached

如果选择添加组件按钮,则可以找到并添加已注册的组件,从而使其生效。我尝试过的任何方法似乎都无法解决问题,因此我们将不胜感激任何帮助。

另请注意,我们将 Replit 用作在线 IDE,因为它有助于 class 项目,但尚不知道这是否会导致问题。

我的猜测是 schoolMap 中的大写“M”。您应该看到一个日志:

core:component:warn The component name `schoolMap` contains uppercase characters, 
but HTML will ignore the capitalization of attribute names. 
Change the name to be lowercase: `schoolmap` 

如果你改变它并且脚本在场景之前(脚本中没有 defer 属性),它应该可以工作:

<script src="https://aframe.io/releases/1.2.0/aframe.min.js"></script>
<script>
  AFRAME.registerComponent("school-map", {
    init: function() {
      console.log("yo")
    }
  })
</script>
<a-scene>
  <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9" school-map></a-box>
</a-scene>