canvas教程

场景转场动画的Canvas实现

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

本篇文章主要介绍了场景转场动画的Canvas实现,对于HTML教程有兴趣的同学可以参考一下。

废话不说,先上图

场景转场动画的strong/pCanvas/strong实现

图1:转场前

场景转场动画的strong/pCanvas/strong实现

图2:转场中(动画效果此处请看末尾链接)

场景转场动画的strong/pCanvas/strong实现

图3:转场后



看完效果,我们来讲讲原理。

首先我们需要准备一张转场用的图。理论上所有图片都可以作为过渡图使用。

我使用的是一张带有天使翅膀图案的图片作为过渡图。


首先,将过渡图黑白化。

var pixs = context.getImageData(0, 0, context.Canvas.width, context.Canvas.height); var data = pixs.data; var len = data.length; while(len -= 4){ var r = (data[len] + data[len + 1] + data[len + 2]) / 3; data[len] = data[len + 1] = data[len + 2] = r; } context.putImageData(pixs, 0, 0);

(以上代码纯手写未测试,请注意)


在进行过渡之前,我们必须往屏幕上绘制一些内容,随便画什么都可以。

然后我们开始准备过渡了。


在过渡之前,我们需要定义一些变量。

// 用于保存旧的场景最后一帧 var oldSceneCanvas = document.createElement("Canvas"); // 用于指示当前最多可用的不透明度值 var currentOffset = 255; // 将过渡图绘制在后台Canvas上,由于之前我们将它黑白化过,因此这里假定已经在Canvas上 var transitionCanvas = ...;

完成上面的操作后,我们将当前可见画布中的内容绘制在 oldSceneCanvas 上。


然后假装正常的把新内容绘制在可见画布上。


之后我们将 oldSceneCanvas 的每个像素和 currentOffset进行比较,如果alpha通道大于currentOffset,则让其等于 currentOffset的值。


将oldSceneCanvas 最后绘制在可见画布上。

1 2 下一页

 

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

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

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

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • 学习慕课网canvas倒计时实例笔记

    学习慕课网canvas倒计时实例笔记

    2017-04-30 14:01

网友点评
i