繁体   English   中英

在 javascript 上调用模块内部的 function?

[英]Call function inside module on javascript?

我正在启动一个使用 three.js 库的项目,我还将使用一个视差库。 3D 效果只是装饰性的,但视差会触发它。

我修改了这个例子并且对我来说很好用:演示: https://threejs.org/examples/#webgl_geometry_text_shapes代码: https://github.com/mrdoob/three.js/blob/master/examples/webgl_geometry_text_shapes.html

...但我需要将每个部分的标题(当用户通过向下滚动输入时)发送到 3D 脚本代码,并且它在模块内关闭。

……怎么办? 我是 three.js 和模块的新手,并希望保持原样的视差(模块外,因为它是一个众所周知的库和开发项目的一部分)

也许正确的方法是转换示例代码,没有模块......但我迷失了......例如,模块中JS的起始部分是:

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';

...没有模块/导入怎么办?

提前致谢

==================================

我添加了一个关于我需要(但不起作用)的示例(最大简化):

<!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>

我解决了将代码转换为常规 JS,而不是模块 JS 的问题。

在库 three.js 中,每个控件都有一个模块版本(进入 /jsm 文件夹)和普通 JS 版本(/js 文件夹)。

还将主文件 three.module.js 更改为 three.js 文件。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM