Pergunta

Estou brincando com VRML no momento, não por escolha, para ser sincero, mas para um projeto em Web 3D.

Estou tentando criar um sensor de toque em VRML que mostre e oculte um Div em uma página da web.Eu tentei escrever um pequeno script usando

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

para tentar testar isso.

O javascript nunca é chamado, mas sei que meu sensor de toque está ok, pois algumas funções que tentei usar (por exemplo,se eu digitar 'navegador' errado), ocorrerá um erro.

Talvez isso simplesmente não seja compatível com navegadores modernos?

Qualquer assistência e conselho seria muito apreciado.

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


ROUTE touchBack.touchTime TO alertScript.make_alert
Foi útil?

Solução

Eles querem apenas VRML clássico ou o X3D é permitido?(X3D é o nome da versão atual do VRML).

Se você tiver permissão para usar o X3D (não vejo por que não), você poderia usar X3DOM que é um WebGL motor, você pode até ganhar pontos extras em sua tarefa :)


Aqui está um exemplo que oculta uma div quando você clica em uma esfera 3D:

<!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>

E a propósito, X3D é a tecnologia 3D recomendada pela especificação HTML5, ela não está morta :-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top