-1
function render() {
    requestAnimationFrame(render);
    renderer.render(scene, camera);
    // cube animation
    cube.rotation.x += 0.01;
    cube.rotation.y += 0.05;
}

// call render function to render cube

render().cube.rotation.x += 0.9;

関数の外で cube.rotation にアクセスしたい。これは可能ですか?

4

1 に答える 1

1

はい、cube範囲内であれば可能です。例えば:

(function(){
    var cube = {rotation: {x: 0, y: 0}};

    function render() {
        cube.rotation.x += 0.01;
        cube.rotation.y += 0.05;
    }

    render();

    cube.rotation.x += 0.9; // Valid
})();

cube.rotation.x += 0.9; // NOT Valid

キューブをグローバルに公開する必要がある場合は、グローバル名前空間を作成します。cubeが宣言されている場所で、次のことを行います。

var cube = ...;
...
var NAMESPACE = window.NAMESPACE = window.NAMESPACE || {};
NAMESPACE.cube = cube;

次に、次を使用してどこからでもキューブにアクセスできます。

window.NAMESPACE.cube.rotation.x += 0.9;

NAMESPACE名前空間の実際の名前に置き換えます。

于 2013-07-28T00:30:36.140 に答える