Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

199
Vistas
La casilla de verificación no se activa en Chrome [Versión 101.0.4951.41 (compilación oficial) (64 bits)]

Editar: parece que mis casillas de verificación no funcionan en absoluto. Cuando se agregó una casilla de verificación regular a mi HTML, tampoco respondió a los eventos de clic.

Actualmente estoy trabajando en un menú dat.gui para mi proyecto THREE.JS.

Aquí está mi proyecto: https://codesandbox.io/s/ray-test-km2wru?file=/src/World.js:5581-5741

Verá que al hacer clic en la casilla de verificación debería cambiar la ecuación del plano como se ve en las líneas 144. Me doy cuenta de que la casilla de verificación, cuando se hace clic, no se desmarca en cromo. Sin embargo, cuando se prueba en Firefox, la casilla de verificación se desactivará y cambiará el valor de planeSpecs.waveXY a falso.

 _createPlane() { // Dat.GUI controllers let planeSpecs = { scaler: 1, speed: 1, waveXY: true }; let planeMat = new THREE.MeshStandardMaterial({ color: 0x6d6e6d, side: THREE.DoubleSide, wireframe: true }); // Creates a single plane with wireframe let planeGeo = new THREE.PlaneGeometry(25, 25, 200, 200); var plane = new THREE.Mesh(planeGeo, planeMat); const planeFolder = this._GUI.addFolder("Plane"); // These scales work planeFolder.add(planeSpecs, "scaler", 1, 10); planeFolder.add(planeSpecs, "speed", 0.1, 25); // This checkbox code doesn't work: const waveXYController = this._GUI .add(planeSpecs, "waveXY") .listen() .onChange((newValue) => { console.log(newValue); }); planeFolder.open(); plane.position.y -= 3; plane.rotation.set(Math.PI / 2, 0, 0); // Animation for the plane plane.tick = (delta, elapsedTime) => { const { position } = planeGeo.attributes; for (let i = 0; i < position.count; i++) { let x = position.getX(i); let y = position.getY(i); let z = position.getZ(i); // Change the equation based on checkbox boolean z = planeSpecs.waveXY ? Math.sin( Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) + elapsedTime * planeSpecs.speed ) * planeSpecs.scaler : Math.sin(x + elapsedTime * planeSpecs.speed) * planeSpecs.scaler; position.setXYZ(i, x, y, z); } position.needsUpdate = true; }; return plane; }

Por lo que he investigado, la forma en que agregué el dat.gui parece ser correcta: https://www.nowherenearithaca.com/2015/07/datgui-easy-way-to-allow-users-to.html

Hice una publicación en los foros de Three.JS, pero después de darme cuenta de que se trata de un problema del navegador, hice una publicación aquí: https://discourse.threejs.org/t/dat-gui-checkbox-not-working -en cromo/37642/2

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema era que el complemento de la biblioteca THREE.JS, Orbit Controls, agregaba detectores de eventos al elemento del cuerpo, lo que provocaba que dat.gui no pudiera recibir entradas del mouse.

Para evitar esto, el segundo parámetro de OrbitControls debería ser un elemento dom.
p.ej. new OrbitControls(camera, renderer.domElement);
Sin embargo, en las últimas versiones de three.js se aplica este segundo parámetro.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda