0

我目前正在使用 X3DOM 在网页上显示一些 3D 模型。关键是,我在画布中单击模型时一一为模型着色,并且我希望它在单击离开时恢复其原始颜色,我的意思是,仍在 X3DOM 画布中,但不在 X3DOM 节点上,例如形状或其他。

为此,我需要在单击空白时获取事件,或者找出我没有单击形状或任何东西但仍在单击 x3dom 画布的方法。

这就是我需要一些帮助的地方,因为我在做的时候唯一能捕捉到的东西:

document.onload = function() {

    var $element = document.getElementById("the-one");

    $element.addEventListener("click", function(event) {

        console.log(event);

    }, false);
};

#the-one是x3dom 画布(我想点击了)。

4

1 回答 1

0

我以某种方式找到了一种方法:

document.onload = function() 
{
    // The X3D element
    var $element = document.getElementById("the-one");

    // Adding the click event
    $element.addEventListener("click", function(event)
    {
        // Get the position of the mouse in the canvas
        var canvasPos = this.runtime.mousePosition(event);

        // Return an array of shape elements contained in a rect on the canvas (x1,y1 and x2,y2)
        var picked = this.runtime.pickRect(canvasPos[0], canvasPos[1], canvasPos[0], canvasPos[1]);

        if (picked.length)
        {
            // do whatever you want
        }

    }, false);
};

如果数组中没有任何内容,则表示用户没有选择任何形状。

于 2015-08-11T13:52:59.530 回答