canvas 插件_从一个简易时钟程序,看canvas取代flash的必然趋势

canvas以其嵌入式的编程方式应用于桌面和移动端,省去了第三方插件,这一优势使得flash显得相形见绌,而且它还能克服flash导致的频繁崩溃和安全性问题,因而将来可望完全取代flash。从下面的这个简易时钟程序就可窥见端倪。

1d1cdd5f3ae56f17281a4b927b835c9b.png
https://www.zhihu.com/video/1119534511742054400

该简易时钟程序的制作如下:

①先声明如下图所示变量。其中,HAND_TRUNCATION是时钟指针截取变量,相应地,HOUR_HAND_TRUNCATION是时针截取变量。

5dea0427406e0953df0812aa658d0b69.png

②时针表面的圆形用drawCircle()方法绘制。它用beginPath()定义开始的路径,接着用arc()创建圆形的路径,待程序调用stroke()方法后,所定义的路径便可见了。代码如下:

0ef5633baa9da6851985aef0607517fd.png

③时钟周围的数字是通过drawNumerals()方法调用fillText()进行绘制的。fillText()会将其填充的文字立即渲染到canvas上,而无需先创建路径。代码如下:

9f96f644574861304acee1ad4fbb9052.png

④用drawCenter()方法调用beginPath()、arc()和fill(),绘制时钟中心的实心圆点。代码如下:

1cb4ab638615516b45b64399a6ecadbb.png

⑤用drawHand()方法绘制时钟的指针。该方法先调用moveTo()把画笔移到画布中指定的位置,接着用lineTo()在该位置与另一个指定点之间,绘制一条不可见的路径,然后用stroke()使当前路径变为可见。代码如下:

9097b82d101e4ada4b45a004eef6b440.png

⑥drawClock()函数用来绘制时钟。它用clearRect()方法来擦除画布,然后反复绘制时钟,因为在调用setInterval()制作时钟的动画效果时,setInterval()方法每秒钟都会调用一次drawClock()函数。代码如下:

3608a1c0791a41798d282a001c28e58a.png

附html代码如下:

082d58c505c09694caa90e782f77d849.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值