2014-12-15 3 views
0

나는 Three.js가있는 기본 입방체 화면을 가지고 있습니다.다른 파일에서 한 js 파일의 변수를 사용하는 방법은 무엇입니까?

이제는 카메라가 펄린 노이즈로 움직이기를 원합니다. 그래서 나는이 펄린 노이즈 라이브러리를 다운로드하여 다른 도서관 옆에 붙여 넣은 : 나는 또한 연결

https://github.com/josephg/noisejs

은 HTML에 스크립트를 추가 :

<script src="three.min.js"></script> 
<script src="my-three.js"></script> 
<script src="perlin.js"></script> 

그런 다음 나는 소음을 사용하려면, 그래서 나는이처럼 perlin.js 파일의 끝에 변수를 만들어 :

var ruido = noise.simplex3(10, 10, 1); 

마지막 단계 내 "m에서, 그래서 카메라에이 변수를 사용하는 것 Y-three.js를 "파일 이런 광고 덧붙여

camera.position.z = ruido; 

을하지만 난 얻을 :

catch되지는 ReferenceError : ruido는

든 변수가 수신되지 않는 정의되지 않은 "my-three.js"파일.

전체 "내-three.js를"파일은 다음과 같습니다 사전에

var scene = new THREE.Scene(); 
    var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); 

    var renderer = new THREE.WebGLRenderer(); 
    renderer.setSize(window.innerWidth, window.innerHeight); 
    document.body.appendChild(renderer.domElement); 

    var geometry = new THREE.BoxGeometry(1, 1, 1); 
    var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); 
    var cube = new THREE.Mesh(geometry, material); 
    scene.add(cube); 

    camera.position.z = ruido; 

    var render = function() { 
    requestAnimationFrame(render); 

    cube.rotation.x += 0.001; 
    cube.rotation.y += 0.001; 

    renderer.render(scene, camera); 
    }; 

    render(); 

감사합니다.

+2

'my-three.js'가'perlin.js '앞에 있기 때문에,'perlin'이 실행되기 전에'ruido'를 참조하려고 시도하고 변수를 설정합니다. 'perlin'의 내부 모습에 따라, 당신이 바꿀 필요가있을 것입니다. – Snuffleupagus

+0

대단히 감사합니다. –

답변

0

my-three.js 파일은 perlin.js 파일에 의존하기 때문에 my-three.js 파일 앞에 perlin.js 파일을 포함해야합니다.

<script src="perlin.js"></script> 
<script src="my-three.js"></script> 
관련 문제