Javascript 问:在A帧中预期时未触发mouseleave

Javascript 问:在A帧中预期时未触发mouseleave,javascript,aframe,Javascript,Aframe,我试图在用户将鼠标移到某些动态创建的长方体上/从中移出时更改它们的颜色 它们总是在mouseenter上成功更改,但是似乎mouseleave并不总是被触发,因此有时它们会保持悬停颜色 这是我的应用程序的基本版本: <html> <head> <script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script> <script> co

我试图在用户将鼠标移到某些动态创建的长方体上/从中移出时更改它们的颜色

它们总是在
mouseenter
上成功更改,但是似乎
mouseleave
并不总是被触发,因此有时它们会保持悬停颜色

这是我的应用程序的基本版本:

<html>
  <head>
    <script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
    <script>
      const COLOURS = {
        default: '#ff0000',
        hover: '#ffff00'
      };

      const blockMouseEnter = event => {
        event.target.setAttribute('material', 'color', COLOURS.hover);
      };

      const blockMouseLeave = event => {
        event.target.setAttribute('material', 'color', COLOURS.default);
      };

      AFRAME.registerComponent('stacks', {
        init: function() {
          const sceneElement = document.querySelector('a-scene');

          for (var stackHeight = 0; stackHeight < 20; stackHeight++) {
            const block = document.createElement('a-entity');

            block.setAttribute('geometry', {
              primitive: 'box',
              width: 0.5,
              height: 0.5,
              depth: 0.025
            });

            block.setAttribute(
              'position',
              `0 ${stackHeight * 0.5} -5`
            );

            block.setAttribute('material', 'color', COLOURS.default);

            sceneElement.appendChild(block);

            block.addEventListener('mouseenter', blockMouseEnter);
            block.addEventListener('mouseleave', blockMouseLeave);
          }
        }
      });
    </script>
  </head>
  <body>
    <a-scene stacks>
      <a-entity position="1 1.6 1" rotation="0 45 0">
        <a-camera>
          <a-cursor></a-cursor>
        </a-camera>
      </a-entity>
      <a-sky color="#5CC8FA"></a-sky>
    </a-scene>
  </body>
</html>

常数颜色={
默认值:'#ff0000',
悬停:“#ffff00”
};
const blockMouseEnter=事件=>{
event.target.setAttribute('material','color',colors.hover);
};
const blockMouseLeave=事件=>{
event.target.setAttribute('material','color',colors.default);
};
AFRAME.registerComponent('stacks'{
init:function(){
const sceneElement=document.querySelector('a-scene');
对于(var stackHeight=0;stackHeight<20;stackHeight++){
const block=document.createElement('a-entity');
block.setAttribute('几何体'{
原语:“box”,
宽度:0.5,
高度:0.5,
深度:0.025
});
block.setAttribute(
“位置”,
`0${stackHeight*0.5}-5`
);
block.setAttribute('material','color',colors.default);
sceneElement.appendChild(块);
block.addEventListener('mouseenter',blockMouseEnter);
block.addEventListener('mouseleave',blockMouseLeave);
}
}
});
,那里的黄砖不应超过一块


有人知道为什么会这样吗?

它应该在A-Frame的主版本中修复,很快将作为0.8.2发布。试试看

它应该在A-Frame的主版本中修复,很快将作为0.8.2发布。试一试