javascript - 调用 JavaScript preload() 函数?

标签 javascript jquery three.js

如果我第一次选中单选按钮,我会感到短暂的卡住。 第二次检查它们一切都运行得非常顺利。我想是因为它们现在在浏览器缓存中。这里有预加载的机会吗?

var insideMap1 = THREE.ImageUtils.loadTexture( 'insideMap1.jpg' );
var insideMap2 = THREE.ImageUtils.loadTexture( 'insideMap2.jpg' );
var insideMap3 = THREE.ImageUtils.loadTexture( 'insideMap3.jpg' );

$("input[name='opt1']").change(function() {

    if ($("#radio1").is(":checked")) {
        material[ "inside" ].map = insideMap1;
    }

    if ($("#radio2").is(":checked")) {
       material[ "inside" ].map = insideMap2;
    }

    if ($("#radio3").is(":checked")) {
       material[ "inside" ].map = insideMap3;
    }

});

最佳答案

使用三个缓存:

<script>
    $(document).ready(function() {

        THREE.Cache.enabled = true;

        var url = '/img/DSC03537.JPG';
        var newImg = document.createElement('img');
        newImg.src = url;
        THREE.Cache.add(url, newImg);

        // main program part
        var insideMap2 = THREE.ImageUtils.loadTexture(url);

        $("#testBox").change(function () {
                $("#tstImg").map = insideMap2;
        });
    });
</script>

注意:THREE.ImageUtils.loadTexture 正在弃用。请改用 THREE.TextureLoader()。

关于javascript - 调用 JavaScript preload() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445418/

相关文章:

jquery - 将动态内容传递给 bootstrap modal 3.2

math - Three.js 平面的奇怪现象

javascript - 三个 JS 从原始 javascript ArrayBuffer 加载纹理

javascript - 未捕获的类型错误 : Cannot read property 'scrollTop' of undefined

javascript - 如何创建元素并设置未命名参数

javascript - 对象.prototype 和函数.prototype

Jquery 自动选择在 IE8 上不起作用

php - Yii ajaxSubmitButton() 与字段验证

javascript - 为什么以及在 Angular 中使用 App.run()

three.js - 如何获取由fragmentShader生成的图像(或纹理)