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中有兼容性问题。由于这个是移动端项目,所以未做兼容性处理。

  • 相关阅读:
    1052 Linked List Sorting (25 分)
    1051 Pop Sequence (25 分)
    1050 String Subtraction (20 分)
    1049 Counting Ones (30 分)
    1048 Find Coins (25 分)
    1047 Student List for Course (25 分)
    1046 Shortest Distance (20 分)
    1045 Favorite Color Stripe (30 分)
    1044 Shopping in Mars (25 分)
    1055 The World's Richest (25 分)
  • 原文地址:https://www.cnblogs.com/chengguanhui/p/4652192.html
Copyright © 2011-2022 走看看