zoukankan      html  css  js  c++  java
  • 图片预加载

      随着移动互联网的火热发展,手机上的APP越来越多,包括web app和native app等。其中web app最离不开网速问题,尤其是游戏等应用。尽管现在的网速变得越来越快了,但是我们为了更好的用户体验,常常对会游戏里用到的资源进行预加载。例如图片等,以我今天做的一个小游戏为例。

      我在游戏场景中,用了近三十张图片,如果在运行时才加载的话,必然会很不流畅。

      

      在用户进入页面时,先加载背景,同时给页面加了个cover以及loading。

      1、记录图片名

      首先,给所需要预加载的图片名存为数组,或者有规律的命名图片,然后用循坏赋值给创建的image对象实例的src值。但是后者不利于维护或者修改。

      var imgArr = ["h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9"];

      2、页面加载完成后开始缓存

      首页渲染后马上缓存后面用到的图片资源,window.onload = loadingFn;

      3、开始缓存

     1 function loadingFn(){
     2         var index = 0;//判断加载数量
     3         for (var i = 0; i < imgArr.length; i++) {//遍历图片数组
     4             var img = new Image();//创建图片对象
     5             img.src ="img/" + imgArr[i]+".png";//给图片添加路径
     6             img.onload = function  () {
     7                 index++;
     8                 if (index==imgArr.length) {//加载完成
     9                     loading.style.display = "none";//隐藏加载图
    10                     start.style.display = "block";//显示开始按钮
    11                 }    
    12             };
    13         }
    14     };

      另外还有需要一提的是,window.onload在FF和IE中有兼容性问题。由于这个是移动端项目,所以未做兼容性处理。

  • 相关阅读:
    CF733F
    P4826
    洛谷P2687 & P1108
    CF42A
    洛谷P1858
    CF1428C
    洛谷P4981
    树形DP
    背包六讲(也不知道为啥就是六个 $QwQ$)
    2020
  • 原文地址:https://www.cnblogs.com/chengguanhui/p/4652192.html
Copyright © 2011-2022 走看看