📅  最后修改于: 2023-12-03 15:00:54.483000             🧑  作者: Mango
getIdfrommodelOnClickAjax 是一个 JavaScript 函数,用于从模型中获取对象的 ID 并使用 AJAX 发送请求。
该函数具有以下功能:
该函数需要两个参数:
model
:一个 3D 模型对象。url
:一个字符串,表示服务器的请求地址。getIdfrommodelOnClickAjax(model, url);
var model = new THREE.Object3D();
var url = "http://example.com/api/";
getIdfrommodelOnClickAjax(model, url);
该函数没有返回值。
如果模型没有选定对象,则该函数将抛出一个异常。
function getIdfrommodelOnClickAjax(model, url) {
var renderer = new THREE.WebGLRenderer();
var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();
renderer.domElement.addEventListener('click', function(event) {
event.preventDefault();
mouse.x = (event.clientX / renderer.domElement.clientWidth) * 2 - 1;
mouse.y = - (event.clientY / renderer.domElement.clientHeight) * 2 + 1;
raycaster.setFromCamera(mouse, camera);
var intersects = raycaster.intersectObjects(model.children);
if (intersects.length > 0) {
var id = intersects[0].object.id;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
xhttp.open("GET", url + "?id=" + id, true);
xhttp.send();
} else {
throw "No object selected.";
}
}, false);
}
以上代码片段按照 markdown 标记渲染可以得到以下效果:
function getIdfrommodelOnClickAjax(model, url) {
var renderer = new THREE.WebGLRenderer();
var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();
renderer.domElement.addEventListener('click', function(event) {
event.preventDefault();
mouse.x = (event.clientX / renderer.domElement.clientWidth) * 2 - 1;
mouse.y = - (event.clientY / renderer.domElement.clientHeight) * 2 + 1;
raycaster.setFromCamera(mouse, camera);
var intersects = raycaster.intersectObjects(model.children);
if (intersects.length > 0) {
var id = intersects[0].object.id;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
xhttp.open("GET", url + "?id=" + id, true);
xhttp.send();
} else {
throw "No object selected.";
}
}, false);
}
getIdfrommodelOnClickAjax 函数是一个很有用的 JavaScript 函数,用于在用户单击模型中的对象时,使用 AJAX 发送请求并处理服务器的响应。