继续学习“短小JavaFX程序大赛”的作品,这次是Philippe Lhoste 的作品Crystal Gears。先看看整体效果:
怎么样,够炫吧!感觉最终没有得奖,关键是没有把机械齿轮的运转和时钟联系起来,比较遗憾。个人觉得此代码要比Pacman Clock复杂,也许是和自己没有接触过机械类图形开发有关。研究齿轮节点的开发就费了一些时间,目前也就了解到如何使用此节点,具体的原理等有机会再研究吧。
1、添加齿轮的显示
其实这第一步就基本完成了整个作品的70%。如果想把齿轮节点显示正常,那么就要先了解齿轮节点的几个基本属性,看代码:
public-init var tx:Number;
public-init var ty:Number;
public-init var ird:Number;
public-init var ord:Number;
public-init var tn:Integer;
public-init var td:Number;
public-init var tk:String='T';
public-init var goa:G[];
public-init var got:G[];
public-init var hr:Rotate;
var a:Number;
var da:Number;
ird实际上就是innerRadius,也就是轴半径;ord是outerRadius,也就是实际齿轮的半径;tn是齿的数量;td是齿深度;tk是toothKind,也就是齿的类型,S代表方形,T代表三角形;goa代表和相关齿轮在相同的轴线上运行(即运行方向一致);got代表通过本齿轮的运动使得相关齿轮运动(即运行方向相反);tx和ty实际就是translateX和translateY;hr、a和da还没有搞太明白。
了解了这些节点属性后,对于我们显示齿轮就方便许多,主要就是慢慢调试的工作了。
2、添加时、分、秒针,这步相对简单,效果如图:
3、使齿轮运转,并且带动时、分、秒针运行。整个程序结束,完整效果请运行