在移动端,利用H5技术,可实现微杂志,微信邀请函,H5小游戏等营销互动等应用开发,本文将介绍一种Create.js与Adobe Animate CC结合来制做H5落地页的方法。css
经过二者结合既充份利用了Create.js的便捷性控制逻辑和总体框架结构,又充份应用了Animate动画制做的灵活性,使设计师与前端工程师分开但可并行工做。
开始以前,先预览下效果:
node
注:本文所提到代码示例使用
es5
进行开发。git
configs: 存放动画基础配置
engine: 存放框架引擎
images: Animate CC制做好的动画资源
sounds: 声音资源
github
Loading层纯展现,接收外部进度,场景开始加载显示,场景加载完成时消失。浮动于页面最上方,使用非CANVAS技术显示。 web
body {
overflow:hidden;
}
#_preload_div_{
position:absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.5);
}
#animation_container, #_preload_div_ .mask {
position:absolute;
margin:auto;
display: inline-block;
height:150px;
width: 120px;
vertical-align:middle;
left:50%;
top:50%;
transform: translate(-50%,-50%);
-webkit-transform: translate(-50%,-50%);
text-align: center;
}
#_preload_div_ .img{
vertical-align: middle;
max-height: 100%
}
#_preload_div_ .img img{
animation: rotates 2s linear infinite;
-webkit-animation: rotates 2s linear infinite;
}
#_preload_div_ span{
display: inline-block;
margin-top: -5px;
vertical-align: middle;
color: #fff;
font-size: 18px;
}
#LXB_CONTAINER_SHOW {
display: none !important;
}
@keyframes rotates {
0%{
transform: rotate(0);
-webkit-transform: rotate(0);
}
100%{
transform: rotate(360deg);
-webkit-transform: rotate(360deg);
}
}
复制代码
从控制层开始,动画效果交由Create.js引擎控制,须要作的是缓存
绑定容器 服务器
初始化调用 微信
加载场景
开始与结束场景处理
引入各场景动画和控制逻辑
场景层用于控制整个H5动画交互逻辑组合,它实现了:
子动画场景事件注册
加载上下场景逻辑
场景资源复用、销毁
removeChild()
移出场景不会占用CPU资源。 手势动画须要引入createjs.Tween
以及对pressup pressmove mousedown
三事件综合判断。主要思想:在mousedown
时记录坐标点,判断Y轴方向在pressup
时记录的坐标点是否大于原来点,大于表示向上滑动,反之向下滑动。
Create.js在设计时考虑到外部资源好比音乐、视频,会存在容量较大状况,所以有提供相应的API来作异步加载。目的是减小主程序字节数,这里的声音管理主要涉及到:
{interrupt: createjs.Sound.INTERRUPT_ANY, loop: -1, volume: 0.5}
普通的XHR请求使用new createjs.LoadQueue(true)
要注意的是异步方式调用new createjs.LoadItem().set
在页面加载完比先要获取签名,而后再设置使用JSDK用到的方法,这方面网络有相关教程,若是想须要有服务端签名自已实现,可参考这篇文章:
[基于egg.js微信分享API封装]
encodeURIComponent
前面说过,使用这种方式的话可让设计师和前端工程师并行工做,好比,能够先定好每一个动画的FLA文件的模板结构,即:
将制做好的动画须要放在一个服务器上的静态资源目录下使用,这里引用egg.js默认的配置,public
目录,要引入微信分享,则须要有个服务端,借助node.js技术发展,通常小型化服务彻底能够由前端一手包办。
由于引入了服务器,则会遇到有相对路径状况,所以程序中加入了前缀配置,将这些配置抽离,放置独立文件中。好比:
经过以上介绍能够发现这是一种综合型工具类的组合,可能你们会有一疑问,H5动画与CSS3不是标配嘛?
我认为大多数状况下是确定的,但在复杂的动画场景,当需求偏向于制做效率与高还原度场景的时候Animate这类的动画创做工做就派上用场了。固然它选用的是Canvas动画,咱们能够截一下它的成品源码,略知一二:
本文所指的全部源码包括框架已在github上传,有兴趣的读者可自行下载研究。
CreateJS-And-Adobe-Animate-CC