为了账号安全,请及时绑定邮箱和手机立即绑定

canvas实现星星闪烁特效

难度中级
时长 1小时15分
学习人数
综合评分9.53
70人评价 查看评价
9.7 内容实用
9.5 简洁易懂
9.4 逻辑清晰
在整体循环里对星星的绘制采用canvas.onmouseover不行吗

已采纳回答 / nc1199
首先这个canvas是由一个大背景加上一个girl&start图片组成的,如果按照你的方式执行的效果就是:只要鼠标移动到背景图上就会触发星星效果;而老师的方法就只有在鼠标移动到图片区域上时才会触发星星效果;
window.requestAnimationFrame可以在代码执行时间过长时,智能缩短等待时间,是画面流畅。而setTimeout做不到。
代码执行时间过长时可能是由机器性能导致,也可能是由代码量过长导致。
setTimeout和setInterval是不一样的。setTimeout至少保证时间间隔。而后者不是//这个说的对啊,javascript是单线程的解释器,每次只能执行一段代码,setInterval如果等待时间间隔小于代码执行时间,会导致计时器往后等待,如果某个时间内已经有一个计时器在等待,碰巧下一个计时器又被读取,下一个计时器就会被忽略,在后面的线程然后会出现空白时间,导致画面有停顿感

已采纳回答 / 李晓健
就是这张图是由 7*7的7张小图片组成,每次只绘制一张就是一帧。整张图是由7帧组成。

最新回答 / Perona
可以哒。老师用的是sublime text 
我觉得既然大家都是来听课的,就认真学习知识,不要对老师不尊重。做人最起码还是要有点羞耻感,想好好听就听,别老是说老师声音性感萌什么的。你看我辣么帅,对这样的美女老师说什么了吗?所以说话别太直白,委婉一点像我这样:老师,我有问题和你探讨,可以留个联系方式吗~~~
老师我爱你
直接用mouseenter和mouseout好吧了?
萌萌的妹子
赞!喜欢老师的 讲课风格。声音很甜美,条理很清晰!
怎样调试canvas
老师我爱你

已采纳回答 / 素素陈
在创建starsObj类时,this.x与this.y是starsObj类的属性,此时的this指的是starsObjinit中的this.x和this.y。此时的this是init,是不能写出了的。
课程须知
1、具有HTML、CSS基础知识 2、具有JavaScript基础知识(函数、类、对象) 3、具有一些Canvas基础(画线、弧线、圆)
老师告诉你能学到什么?
1、如何轮播一张图片上的序列帧 2、canvas的几个主要绘图API:drawImage()、save()、restore()。 3、如何处理鼠标事件 4、如何化繁为简的做项目

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消