从registerComponent创建新对象时,如何为对象设置功能

时间:2019-04-07 13:36:15

标签: aframe webvr

我想创建一个新的对象,当它由registerComponent制成时,它具有“移动”功能。

我尝试使用setAttribute('function Name')和setAttribute('attribute','function Name'),但两者都不起作用。

例如:


            AFRAME.registerComponent('objectMake',
            {
                init:function()
                {

                },
                tick: function()
                {
                    var sceneEl = document.querySelector('a-scene');
                    if (condition == true) 
                    {
                        var boxEl = document.createElement('a-box');

                        boxEl.setAttribute('material',{color:'#CC0000'});
                        boxEl.setAttribute('position',{x:Math.random()*20-10,y:Math.random()*20-10,z:Math.random()*20-10});
                        boxEl.setAttribute('scale',{x:Math.random()/2,y:Math.random()/2,z:Math.random()/2});
                        boxEl.setAttribute('attribute','move');
                        sceneEl.appendChild(boxEl);
                    }
                }

            });
AFRAME.registerComponent('move', 
            {               
                tick: function()
                {
                    var targetItem = document.querySelector('a-box');
                    var targetPosition = targetItem.getAttribute('position');
                    this.el.setAttribute('position',
                    {
                        x: targetPosition.x,
                        y: targetPosition.y,
                        z: targetPosition.z-0.1
                    });
                }
            });

我该怎么做或该如何改善?

0 个答案:

没有答案