Estoy comenzando un proyecto que usa la biblioteca three.js, y también usaré una biblioteca de paralaje. Los efectos 3D serán solo decorativos, pero el paralaje lo activará.
Modifiqué este ejemplo y funciona bien para mí: demostración: https://threejs.org/examples/#webgl_geometry_text_shapes código: https://github.com/mrdoob/three.js/blob/master/examples/webgl_geometry_text_shapes.html
... pero necesito enviar el título de cada sección (cuando el usuario ingresa en él desplazándose hacia abajo) al código de script 3D, y se cierra dentro de un módulo.
...¿Cómo hacerlo? Soy novato en three.js y módulos, y quiero mantener el paralaje como está (fuera del módulo, porque es una biblioteca muy conocida y parte de un proyecto desarrollado aún)
Tal vez la forma correcta es transformar el código de muestra, sin módulos... pero estoy perdido con eso... por ejemplo, la parte inicial de JS en el módulo, son:
import * as THREE from 'three'; import { OrbitControls } from './jsm/controls/OrbitControls.js'; import { SVGLoader } from './jsm/loaders/SVGLoader.js'; import { FontLoader } from './jsm/loaders/FontLoader.js';...¿cómo hacerlo sin módulos/importar?
Gracias por adelantado
==================================
Agrego un ejemplo (máximo simplificado) sobre lo que necesito (y no funciona):
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - simple text from json</title> </head> <body> <script type="module"> init(); function init() { function hi( text) { alert(text); } } // end init </script> <script> init().hi("hi world"); </script> </body> </html>Resolví esto convirtiendo el código en JS normal, no en el módulo JS.
En la biblioteca three.js, hay para cada control una versión para el módulo (en la carpeta /jsm) y una versión normal de JS (carpeta /js).
También cambió el archivo principal three.module.js por el archivo three.js.
Gracias