canvas教程

构建Canvas动画框架进度条的实现

字号+ 作者:H5之家 来源:H5之家 2015-10-11 12:14 我要评论( )

{$PageColumn}

今天和大家探讨canvas动画框架之图片预加载,如上图的进度条,这可不是假的进度条,是真正能够实时获取图片加载进度的进度条。

为什么想要做这个进度条呢?canvas需要进度条么?答案显然是肯定的。我们的页面如果放到服务器上,图片的下载将是相当漫长的一个过程。如果我们不进行预加载就开始执行动画的话,那么用户肯定看不到理想的效果。

那么我们就来看看canvas图片预加载的实现(此处参考了网上一段代码,来源:)

  • 当windows.onload发生后,我们定义一个存储着所有图片信息的对象sources,然后把它传入loadImages这个方法里。

    重点是看看loadImages这个方法,它有两个参数,一个是存储的图片信息的sources,一个是回调函数callback(一旦图片加载完毕,即执行callback。我们这里执行的是main函数,意味着动画开始初始化)

    总图片数我们存在numImages里面:

  • // 首先遍历数组,计算出总图片数      
  •     for (var src in sources) {      
  •         numImages++;      
  •     }     
  • 其实这个方法的核心就是给每张图片添加一个onload事件。

    当每张图片加载完成后,我们做了三件事:

    1.计算出加载完成图片与总图片的百分比;

    2.然后画出一个用户可见的进度条,告诉用户加载的进度;

    3.做判断看图片是否加载完,如加载完了就执行callback,否则返回error。

    结构如下:

     

  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • html5canvas核心技术图形、动画与游戏开发源码

      html5canvas核心技术图形、动画与游戏开发源码

      2017-05-02 17:42

    • canvas游戏开发学习之四:应用图像

      canvas游戏开发学习之四:应用图像

      2017-04-29 16:00

    • Canvas与ValueAnimator

      Canvas与ValueAnimator

      2017-04-28 18:00

    • 21天学习android开发教程之SurfaceView与多线程的混搭

      21天学习android开发教程之SurfaceView与多线程的混搭

      2017-04-27 12:00

    网友点评
    t