快速业务通道

JavaFX Script高级特性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
= newPath {     if (newPath != null and not "".equals(newPath.trim())) {        setOpmlFilePath(newPath);     }   }

数据绑定的使用

数据绑定在这个应用中主要用来协调左侧的 OmplViewer 和右侧的 FeedViewer。FeedViewer 的属性 feedUrl 绑定到 OmplViewer 的属性 selectedFeedUrl。这样当用户选择了某个订阅源的时候,OmplViewer 的属性 selectedFeedUrl 的值会发生变化,FeedViewer 的属性 feedUrl 的值也会随之变化。FeedViewer 就会去加载新的订阅源内容了。具体见 代码清单 10。

清单 10. OpmlView 和 FeedViewer 之间的数据绑定

var opmlViewer = OpmlViewer {   opmlFilePath : "c:\\google-reader-subscriptions.xml",   hmax : 200   hmin : 100 }; var feedViewer = FeedViewer {   feedUrl : bind opmlViewer.selectedFeedUrl };

上面介绍了如何在 JavaFX Script 中创建复杂的用户界面,下面将涉及 JavaFX Script 中一个有趣的话题,那就是实现动画效果。

创建动画

使用 JavaFX Script 来创建动画是一件非常容易的事情。 JavaFX Script 所采用的动画方式叫“关键帧动画(key frame animation)”。这种动画是通过一系列的场景的转换来完成的,而场景则是由特定时间点上的关键帧来表示的。程序员只需要以声明式的方式定义这些关键帧,系统会自动的完成剩下的工作。“关键帧动画”又分成两种,离散型和插值型。两者的区别在于:对于后者,系统会用特定的插值函数来计算每个关键帧之间的中间状态。 JavaFX Script 中的动画主要是依靠 javafx.animation.Timeline、javafx.animation.KeyFrame、javafx.animation.KeyValue 这三个类来完成的。

这三个类的基本说明如下:

javafx.animation.Timeline Timeline 可以理解为动画的时间轴。所有的动画都是围绕一个时间轴来运行的。 javafx.animation.KeyFrame KeyFrame 是时间轴上的关键帧。每个关键帧都与时间轴上的某个时间点关联起来。每个关键帧可以包含一系列的 KeyValue 和子时间轴,以及一个动作(action)。子时间轴的起始时间点是相对于其父时间轴的。从而使得时间轴可以嵌套起来,形成层次结构。动作则是当关键帧对应的时间点到达的时候,所执行的一段代码。 javafx.animation.KeyValue KeyValue 给出了某个属性在当前关键帧中的值,以及一个用来计算在之前的关键帧中该属性的值与当前值之间的中间值的方法。关于 KeyValue 的具体介绍请看下节。

JavaFX Script高级特性(5)

时间:2011-02-12 IBM 成富

KeyValue 的用法

下面用一个例子来具体说明 KeyValue 的用法,见 代码清单 11。

清单 11. KeyValue 的用法

var simpleVar = 0; function output() : Void {   System.out.println("The value of simpleVar is {simpleVar}."); } Timeline {   repeatCount: Timeline.INDEFINITE   keyFrames : [     KeyFrame {       time : 1s       action: output     },     KeyFrame {       time : 1.5s       action : output     },     KeyFrame {       time : 2s       values : [         simpleVar => 200 tween Interpolator.LINEAR       ]       action: output     }   ] }.start()

代码清单 11 中创建了一个无限运行的 Timeline,该 Timeline 包含 3 个关键帧,所关联的时间点分别是 1 秒、1.5 秒和 2 秒。在这 3 个关键帧所关联的时间点到达的时候,都会执行 output 方法,该方法会打印出 simpleVar 的值。需要说明的是在第三个关键帧上,通过 values 声明了

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号