1

我现在正在玩 VRML,老实说不是通过选择,而是为了一个 Web 3D 项目。

我正在尝试在 VRML 中制作一个触摸传感器,它将在网页中显示和隐藏 Div。我尝试使用编写一个小脚本

browser.loadURL('javascript:someFunction()');

尝试测试一下。

javascript 永远不会被调用,但是我知道我的触摸传感器没问题,因为我尝试使用某些功能(例如,如果我拼写“浏览器”错误)它会引发错误。

也许这只是现代浏览器不支持?

任何帮助和建议将不胜感激。

    DEF alertScript Script {
    eventIn SFTime make_alert
    url [ "javascript:
    function make_alert (value) {
      Browser.loadURL('javascript:alert()');
    }
    " ]
}


ROUTE touchBack.touchTime TO alertScript.make_alert
4

1 回答 1

2

他们只想要经典的 VRML 还是允许 X3D?(X3D 是当前 VRML 版本的名称)。

如果您被允许使用 X3D(我不明白为什么不这样做),您可以使用WebGL引擎X3DOM,您甚至可以在作业中获得加分 :)


这是一个在您单击 3D 球体时隐藏 div 的示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Touchsensor in X3DOM</title>

    <link href="x3dom.css" rel="stylesheet" />
    <style>
    #myDiv {
        color: blue;
        margin: 20px 0;
    }
    x3d {
        display: block;
        width: 600px;
        height: 400px;
        background: #EEEEEE;
        border: none;
    }
    </style>
</head>
<body>


    <div id="myDiv">
        Click the sphere to hide this div
    </div>

    <x3d>
        <Scene>
            <Shape id="mySphere">
                <Appearance>
                    <Material diffuseColor="0 1 0" />
                </Appearance>
                <Sphere/>
            </Shape>
        </Scene>
    </x3d>


    <script src="x3dom.js"></script>
    <script>
    (function() {

        document.getElementById('mySphere').onclick = function(){
            document.getElementById('myDiv').style.display = "none";
        };

    })();
    </script>


</body>
</html>

顺便说一句,X3D 是 HTML5 规范推荐的 3D 技术,它根本没有死 :-)

于 2012-03-11T15:56:35.940 回答