Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

194
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!