2013-07-28 2 views
-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; 

Я хочу получить доступ к кубическому экрану вне функции. Это возможно?Изменить свойства объекта JavaScript?

+4

Где объявлен куб? – mohkhan

+0

Прочитать сообщения об ошибках. Заметим, что 1) внутри функции 'cube' будет поднимать ReferenceError и 2) вызов функции (' render() ') возвращает' undefined' (или будет, если он будет работать). – user2246674

+0

Yup - в коде, который вы предоставили, y вы также не можете получить доступ к кубу из 'inside', потому что его не существует. –

ответ

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 с реальным именем пространства имен.

Смежные вопросы