调用JavaScript preload()函数?

Ale*_*ein 10 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;
    }

});
Run Code Online (Sandbox Code Playgroud)

Pav*_*nko 5

使用THREE.Cache:

<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>
Run Code Online (Sandbox Code Playgroud)

注意:不推荐使用THREE.ImageUtils.loadTexture.请改用THREE.TextureLoader().