前端实现序列帧_Html5 序列帧动画
}html, body{height:100%;width:100%;
}canvas{display:block;
}
Your browser does not support the audio element.
Your browser does not support the audio element.
Your browser does not support the canvas element!
varcanvas;//画布
varSceneSwitch= 1;//动画选择
varFrameSecond= 60;//更新时间(毫秒)
varAnimController;//动画控制
//定义5个动画
varAnim1,Anim2,Anim3,Anim4,Anim5;//动画控制函数
functionController(){switch(SceneSwitch){case 1:
Anim3.Draw();break;case 2:
Anim3.Draw();
Anim1.Draw();break;case 3:
Anim3.Draw();
Anim1.Draw();
Anim2.Draw();break;case 4:
Anim1.Draw();
Anim2.Draw();
Anim3.Draw();
Anim4.Draw();break;default:
Anim5.Draw();break;
}//不断刷新
AnimController=setTimeout("Controller()",FrameSecond);
}
window.οnlοad= function() {
canvas=document.getElementById("canvas");
canvas.width=document.body.clientWidth;
canvas.height=document.body.clientHeight;//绘制背景
DrawBackground();//实例化动画对象
Anim1= newPicAnim("SceneOne/ShangHai/",1,74,20,0,2720,canvas.height);//初始化+启用循环(24帧到74帧循环)
Anim1.Init().SetLoop(true,24,74);
Anim2= newPicAnim("SceneOne/Dollor/",1,64,Anim1.X+Anim1.Width,0,1000,canvas.height);
Anim2.Init().SetLoop(false);//设置下一个动画
Anim1.Next=Anim2;
Anim3= newPicAnim("SceneOne/BallX/",1,161,Anim2.X+Anim2.Width,0,3200,canvas.height);
Anim3.Init().SetLoop(false);
Anim4= newPicAnim("SceneOne/Map/",1,52,Anim3.X+Anim3.Width,0,2600,canvas.height);
Anim4.Init().SetLoop(false);
Anim5= newPicAnim("SceneTwo/Pictures/IMG",1,2500,0,0,canvas.width,canvas.height);
Anim5.Init().SetLoop(true,2200,2500);
Anim5.LoopType= 2;//循环方式,1双向循环,2单向循环
Anim5.Width=canvas.width;//设置画面宽度
Anim5.HasBack= true;//是否有背景,如果有则不会调用背景绘制函数
Anim5.Format=2;//设置文件命名格式
Anim5.Extenes= ".jpg";//序列帧后缀名
Anim5.Keys.push(250);//关键帧,到帧停止,S键再次启动
//启动动画控制
AnimController=setTimeout("Controller()",FrameSecond);
}//动画对象,路径、第一张图片名,最后一张图片名,x轴,y轴,宽度,高度
//*图片都是通过数字进行顺序命名
functionPicAnim(path,min,max,x,y,w,h){this.Path=path;this.Index=min;this.MinIndex=min;this.MaxIndex=max;this.X=x;this.Y=y;this.Width=w;this.Height=h;this.Extenes= ".png";this.Format= 1;this.Picture= newImage();this.Loading= false;this.Drawed= true;this.HasBack= false;this.IsLoop= false;this.LoopBegin=min;this.LoopEnd=max;this.LoopType= 1;this.Keys= newArray();varloopDir= 1;varobj= this;this.Init= function(){
obj.Height=canvas.height;
obj.Width=canvas.width/10240*obj.Width;
returnobj;
}this.SetLoop= function(loop,loopBegin,loopEnd){
obj.IsLoop=loop;
obj.LoopBegin=loopBegin;
obj.LoopEnd=loopEnd;returnobj;
}this.Next= null;varisNextStart= false;this.Draw= function(){if(obj.Drawed){
obj.Drawed= false;if(obj.Format!=1){
obj.Picture.src=obj.Path+obj.Index+obj.Extenes;
}else{
obj.Picture.src=obj.Path+"("+obj.Index+")"+obj.Extenes;
}
obj.Picture.οnlοad= function(){varcontext=canvas.getContext("2d");if(!obj.HasBack)
DrawAreaBack(obj.X,obj.Y,obj.Width,obj.Height);
context.drawImage(obj.Picture,obj.X,obj.Y,obj.Width,obj.Height);if(false==isNextStart&&null!=obj.Next&&obj.Index>=obj.MaxIndex){
isNextStart=true;
SceneSwitch++;
}if(obj.IsLoop){
obj.Index+=loopDir;//Begin 场景2 跳帧专用
if(obj.Index== 1160)
document.getElementById("myLockAudio").play();if(obj.Index>1360&&obj.Index<2490)
obj.Index+=2;//End
if(obj.Index>=obj.LoopEnd){if(obj.LoopType==1)
loopDir= -1;elseobj.Index=obj.LoopBegin;
}else if(obj.Index<=obj.LoopBegin)
loopDir= 1;
}else{
obj.Index++;if(obj.Index>obj.MaxIndex){
obj.Index=obj.MaxIndex;
}
}if(obj.Keys.length>0){vari=0;for(;i
}if(i
obj.Drawed=false;elseobj.Drawed=true;
}else{
obj.Drawed= true;
}
}
}
}
}functionDrawBackground() {
DrawAreaBack(0,0,canvas.width,canvas.height);
}functionDrawAreaBack(x,y,w,h){varcontext=canvas.getContext("2d");varlinearGradient1=context.createLinearGradient(0, canvas.height,0,0);
linearGradient1.addColorStop(0,'rgb(0, 7, 17)');
linearGradient1.addColorStop(0.5,'rgb( 3, 26, 60)');
context.fillStyle=linearGradient1;
context.fillRect(x, y, w, h);
}
window.οnkeydοwn=disableRefresh;functiondisableRefresh(evt) {
evt=(evt)?evt : window.eventif(evt.keyCode) {if(evt.keyCode== 83) {if(SceneSwitch<5)
SceneSwitch++;else{
Anim5.Index=Anim5.Keys[0]+1;
Anim5.Drawed= true;
}
}
}
}
前端实现序列帧_Html5 序列帧动画相关推荐
- png序列帧转换WebP动画
最近项目要用webp格式展示动画(webp格式的优点在这我就不说了,baidu很多),由于UI同学无法给予我们支持,只能给我们png序列帧文件,所以接下来的事情需要开发自己转换,所有有了这篇的总结:进 ...
- 前端HTML5视频_HTML5核心-张晓飞-专题视频课程
前端HTML5视频_HTML5核心-275人已学习 课程介绍 HTML5是定义 HTML 标准的新的版本. 广义上我们应该认为HTML5是一套技术集合,允许更多样化和强大的网站和应用程 ...
- Unity3D中如何调用序列帧图片为动画
环境:Unity4.6.2 Win7 64bit 我这里一张图片就是一帧,不需要去把一张图片裁剪成几段.然后把这些png图片按顺序渲染.其实这样也可以用视频来代替,也可以有同样的效果. 实际操作其实是 ...
- 白鹭(egret)序列帧图片打包动画资源
内容包括 使用[Adobe Flash Professional CS5.5]打包swf 导入swf到[TextureMerger]并打包json 动画资源 使用[Adobe Flash Profes ...
- 520套日式 韩游 消除RGB类 人物角色 动画序列帧 手游动画
资源下载链接: https://download.csdn.net/download/zhang1461376499/13193072
- H5+css+js前端特效源代码:发光动画按钮:上传按钮
前端特效:发光动画按钮:上传按钮 H5+CSS+JS 骨架+皮肤+功能 效果展示 源代码: H5部分: <!DOCTYPE html> <html lang="en&quo ...
- 前端鼠标点击出现动画大全
一:前端鼠标点击出现自定义汉字 <!DOCTYPE html> <html lang="en"> <head><meta charset= ...
- 前端之Html+Css实现动画的方法
在不使用JS.Canvas.gif等其他方式的情况下,前端实现动画的方式有Css3的transform属性.transition属性和animation属性三种方式. 1.transform属性 可以 ...
- 分享web前端七款HTML5 Loading动画特效集锦
以前我们大部分的Loading动画都是利用gif图片实现的,这种图片实现Loading动画的方法虽然也很不错,但是作为HTML5开发者来说,如果能利用HTML5和CSS3实现这些超酷的Loading动 ...
- 前端学习(1734):前端系列javascript之添加动画
<template><view class="content"><!-- 状态栏 --><view v-if="list.len ...
最新文章
- R绘制面积图(area plot)
- python+selenuim自动化测试(六)弹窗的处理
- 关于vue项目中添加less,less-loader不能运行的问题
- windows安装python3步骤_Windows下python3和python2安装与一起使用
- 关于国土空间规划的价值的一些思考
- 【LOJ#2507】[CEOI2011]Matching(KMP,树状数组)
- 别太相信自己,总有一种诈骗戳中你的刚需
- vue网页分享生成二维码微信扫一扫进行分享
- 我的IT之路2011(一)
- 程序员年后离职跳槽指南
- 广东九联UNT402H-3798-mv300-uwe5621wifi-爱家TV新魔百和刷机固件
- 宽屏扁平化结婚恋爱整站HTML5模板
- python感叹号的作用_Python的作用
- Java - 学习资料
- 【建模算法】变异系数法(Python实现)
- sql server 日期转字符串 格式为yyyyMMddHHmmss
- 【C++】命令行方式获取主板序列号
- USACO 2019 December Silver】MooBuzz
- 强化学习之Q-Learning
- 二阶椭圆型第一边值问题的数值解法(五点差分格式和有限体积法)附matlab代码