《JavaScript高效图形编程(修订版)》——6.8 使用画布创建动画
发布日期:2021-08-26 15:47:06
浏览次数:7
分类:技术文章
本文共 614 字,大约阅读时间需要 2 分钟。
本节书摘来自异步社区《JavaScript高效图形编程(修订版)》一书中的第6章,第6.8节,作者:【美】Raffaele Cecco著,更多章节内容可以访问云栖社区“异步社区”公众号查看
6.8 使用画布创建动画
使用JavaScript(或jQuery等JavaScript库)时,你可能习惯操作页面元素的位置、大小、图像或色彩,并看着它神奇地直接忘记其旧属性,而更新其新属性。按这个逻辑,如果我们不断增加一个元素的x和y位置,可以创建将此元素移到页面右下角的动画效果。但如果我们在画布上以这种方式移动方块的话,结果可能让我们很意外(如图6-13所示):
请记住画布是一个低级别和立即模式系统:每次循环在屏幕上绘制的另一个矩形,都会叠加于上次迭代的矩形之上。这样的结果是一个大涂鸦,而不是一个动画。为创建在页面上移动的方块动画,我们需要稍稍多做点工作:
1.存储方块的初始(x,y)位置;
2.清除画布;
3.更新方块的(x,y)位置;
4.在新的位置绘制方块;
5.等待一小会儿;
6.循环回到第2步。
基本上所有的位图动画系统都在幕后做类似上述循环的操作。在某些情况下第2步是可选的。例如,如果背景完全被实色、渐变或位图图像填补,那就没有必要清除它。第5步是必要的,这使用户有机会看到动画,并让浏览器有时间去做其他事情,否则该浏览器将立即被冻结。通常情况下大约20~50毫秒的延迟比较合适。以下页面会呈现我们想要的效果:
转载地址:https://blog.csdn.net/weixin_33890499/article/details/90570232 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月15日 04时37分49秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Airtest自动化测试神器,教你实现Unity自动化测试
2021-06-30
模拟器连接端口汇总和常用ADB命令
2021-06-30
ShaderGraph使用教程与各种特效案例:Unity2020(持续更新)
2021-06-30
Unity爆炸、闪电、火焰、雷雨特效Demo
2021-06-30
使用python登录和访问Confluence
2021-06-30
Unity2020中使用MemoryProfile卡死和报错的问题
2021-06-30
Unity中加载Texture2D不断消耗内存的问题
2021-06-30
手把手教你使用Unity制作一个飞机喷射火焰尾气的粒子效果
2021-06-30
gitee使用教程,创建项目仓库并上传代码
2019-04-27
Unity3D 上传日志
2019-04-27
Unity3D 序列帧
2019-04-27
Unity3D 动态创建图集并压入精灵(NGUI)
2019-04-27
C# 将Excel转xml
2019-04-27
Unity3D log写入文件
2019-04-27
Unity3D动态创建摄像机
2019-04-27
unity 根据纪元时间(1970/1/1)转换为DateTime
2019-04-27
C# 字符串md5加密
2019-04-27