首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X3dom click away事件

X3dom click away事件
EN

Stack Overflow用户
提问于 2015-08-11 17:52:40
回答 1查看 257关注 0票数 0

我目前正在使用X3DOM在网页上显示一些3D模型。重点是,当在画布中单击模型时,我会逐个为它们上色,当单击离开时,我希望它恢复到原来的颜色,我的意思是,仍然在X3DOM画布中,但不在X3DOM节点上,如形状或其他。

为此,我需要在单击空格时获取事件,或者找到一种方法来确定我没有单击某个形状或任何东西,而是仍然在x3dom画布上单击。

这就是我需要帮助的地方,因为我在做以下事情时捕获到的唯一一件事:

代码语言:javascript
复制
document.onload = function() {

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

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

        console.log(event);

    }, false);
};

是x3dom画布上的单击事件(#the-one),而不是其他任何事件,即使我单击了一个形状(我可以在该形状的onclick事件上执行一个处理程序,但因此它将在一个不同的函数中,因此不能知道我是否单击了)。

EN

回答 1

Stack Overflow用户

发布于 2015-08-11 21:53:00

不知何故,我找到了一个方法:

代码语言:javascript
复制
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);
};

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31938590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档