如何通过三个.js上的按钮更改背景
How to change the background by buttons on three.js?
我是三个新手.js使用以下代码我想知道如何通过单击按钮来更改背景。所以我认为与使用"开关"和"中断"有些不同。这是我对的.loadTexture的东西吗?
<html lang="en">
<head>
<title>gyroscopic</title>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1">
<style>
body {
margin: 0px;
background-color: #000000;
overflow: hidden;
}
</style>
</head>
<body>
<div id="container"></div>
<script src="three.min.js"></script>
<script src="DeviceOrientationControls.js"></script>
<script>
(function() {
"use strict"
window.addEventListener('load', function() {
var container, camera, scene, renderer, controls, geometry, mesh;
var animate = function(){
window.requestAnimationFrame( animate );
controls.update();
renderer.render(scene, camera);
};
container = document.getElementById( 'container' );
camera = new THREE.PerspectiveCamera(80, window.innerWidth / window.innerHeight, 1, 1100);
controls = new THREE.DeviceOrientationControls( camera );
scene = new THREE.Scene();
var geometry = new THREE.SphereGeometry( 500, 316, 18 );
geometry.applyMatrix( new THREE.Matrix4().makeScale( -1, 1, 1 ) );
var material = new THREE.MeshBasicMaterial( {
map: THREE.ImageUtils.loadTexture( 'pic.jpg' )
} );
var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
var geometry = new THREE.BoxGeometry( 100, 100, 100, 4, 4, 4 );
var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.domElement.style.position = 'absolute';
renderer.domElement.style.top = 0;
container.appendChild(renderer.domElement);
window.addEventListener('resize', function() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize( window.innerWidth, window.innerHeight );
}, false);
animate();
}, false);
})();
</script>
</body>
</html>
您应该能够在按钮单击侦听器上使用 .loadTexture 更改纹理。
所以你可能会在你的HTML中添加这样的东西:
<button id="change-background">Change Background</button>
然后在Javascript中:
var backgroundButton = document.getElementById('change-background');
backgroundButton.addEventListener('click', function(){
material.map = THREE.ImageUtils.loadTexture('//new image path//');
});
您显然需要将//new image path//
替换为新图像的任何URL。
唯一的问题是这是否也会更新网格上的材质。我确定它确实如此,但目前无法对其进行测试。
相关文章:
- 蓝色和透明的按钮背景
- 谷歌工作表中的按钮,当单击时,会更改特定单元格的背景
- "隐藏/显示”;元素和更改按钮背景图像
- 如何在 Firefox 扩展的 JavaScript 中的按钮背景中插入图像
- 如何使用jquery在鼠标悬停时更改按钮背景颜色
- CSS 按钮背景图像在 IE9 中不起作用
- HTML - 如何在 OnClick 事件上更改按钮背景颜色
- ExtJS基于颜色选择器动态更改按钮背景颜色
- 按钮背景颜色不起作用
- 按钮背景颜色更改
- 按钮背景颜色切换
- Button .js中的按钮背景颜色
- 我如何用javascript改变一个按钮背景
- 按钮背景更改点击
- 有没有办法用颜色填充一半的按钮背景?
- 为什么我的按钮背景没有改变颜色?
- 如何在extjs中删除按钮背景
- CSS3将按钮背景颜色从左向右更改
- jQuery onClick 单选按钮背景更改
- 单击时切换按钮背景颜色