Ich habe eine Weltkartenebene als Ebenengeometrie, jetzt möchte ich Klickereignisse auf verschiedenen Teilen behandeln (zum Beispiel Kontinente oder Länder). Wie man Popup-Ereignisse auf einem bestimmten Teil behandelt (Popup von Informationen oder Videowiedergabe oder Bilddaten mit Links usw.)So behandeln Sie Click-Ereignisse in der three.js-Szene.
Hier ist ein fiddle, der bereits die Szene eingerichtet hat.
var camera, scene, renderer;
var geometry, material, mesh;
window.addEventListener("click", onClick, false);
function onClick() {
alert("Replace me with code to add an object!");
}
var init = function() {
renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 1, 1000);
camera.position.z = 500;
scene = new THREE.Scene();
geometry = new THREE.CubeGeometry(200, 200, 200);
material = new THREE.MeshBasicMaterial({
color: 0x000000,
wireframe: true,
wireframeLinewidth: 2
});
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
}
var animate = function() {
requestAnimationFrame(animate);
mesh.rotation.x = Date.now() * 0.0005;
mesh.rotation.y = Date.now() * 0.001;
renderer.render(scene, camera);
}
init();
animate();
das Click-Ereignis auf ganze Szene angewandt wird, ich habe in diesem Beispiel mehr Würfel erstellt und wenn darauf geklickt wird, dass es das gleiche Click-Ereignis für alle Teile angezeigt wird.
@mahadevs Sie haben nur eine Oberfläche und eine Weltkarte als Textur drauf. So kann man Interaktivität nicht erreichen. Erstellen Sie Formen für jedes Teil, das Sie benötigen, und machen Sie den Raytest in dem Tutorial, das ich gesendet habe. – Hasan
Sicher werde ich das versuchen. –
mit Hilfe des Tutorials, erstellte ich Click-Ereignis mit Raycasting. Aber das Problem ist, dass es einen Konflikt mit Drag & Click-Ereignissen gibt. Verwendet das Ereignis onMouseDown (orbitcontrols) für Panning und onDocumentMouseDown (event) für Klickereignisse. Test [Link] (http://arkatest.com/testing/working/test1.html) –