【问题标题】:How can I use an event to select a query selector to select an entity to copy the rotation of another entity?如何使用事件选择查询选择器来选择一个实体来复制另一个实体的旋转?
【发布时间】:2019-02-03 10:48:26
【问题描述】:

在这个组件代码中,我试图使用一个事件来选择名为“name”的变量的含义 选择哪个实体将在用户观看时复制另一个实体轮换。

不同的事件会导致不同的轮换。

所以事件 1 表示 name 等于 querySelector 对象 A

然后我试图让行获得它自己的旋转并将其赋予名称的(到)动画,然后开始 通过向 name 发射 moveobject 来实现 name 的动画。

但是,在投入大量时间试图解决这个问题后,我目前被困在这个问题上。帮忙?

    AFRAME.registerComponent("comp", {
       init: function () {
           let name = {}
           this.el.addEventListener("event1", (e) => {
             name = document.querySelector('#objectA');
             console.log('event1')
// line 13?   comp.emit('rowstart)
           });
           this.el.addEventListener("event2", (e) => {
             name = document.querySelector('#objectB');
             console.log('event2')
           });

           let row = document.querySelector('#rowA');
           row.addEventListener('rowstart', function (e) {
               var rotation = row.getAttribute('rotation')
               name.setAttribute('animation', {
                   to: {
                       x: rotation.x,
                       y: rotation.y,
                       z: rotation.z - 30
                   }
               })
           name.emit('moveobject')
           });
       }
   });

我应该提到,下面的这个链接是我的代码在仅复制旋转时的样子,而不是使用事件来选择将旋转的实体https://glitch.com/edit/#!/copy-rotation?path=index.html:37:8(已编辑)

【问题讨论】:

    标签: aframe


    【解决方案1】:

    to 不是向量属性,您必须将其作为字符串传递。

    name.setAttribute('animation', 'to', `${rotation.x} ${rotation.y} ${rotation.z}`);
    

    【讨论】:

    • 好吧,我把 to 变成了一个字符串'to',但是在我把它变成一个字符串之前和之后,这已经在我上面链接的 glitch.com 上的示例代码中起作用了。我怀疑我需要修复的部分是如何启动名为“rowstart”的事件,一旦名称 querySelector 被此脚本之外的事件选择,在第 13 行我想知道我是否需要那里的发出语句或其他东西
    • 我不确定您到底想做什么,如果您缩小/t; 将问题缩小到一个没有整个项目背景的技术问题,可能会有所帮助。也许您在询问活动详情?您可以传递事件详细信息。 someEl.emit('eventName', value) 然后value 将被传递给事件处理程序evt.detail。您也可以通过这种方式传递元素或对象。
    • 几天前我确实设法完成了这段代码,这是它应该按预期工作时的样子的视频m.facebook.com/… 但是我们解决它的方法是与您提出的解决方案完全不同,这很好,只是现在我想学习如何以您的方式重新解决已经解决的问题,以提高我对 A-Frame 工作原理的理解。我很难以一种狭隘的方式描述我正在尝试做的事情,但我会再次尝试这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多