快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
-12 IBM 成富

代码中创建了两个 Timeline,一个用来表示地球的自转,另外一个用来表示月球围绕地球的转动。表示地球自转的动画使用的是离散型“关键帧动画”。该 Timeline earthTimeline 包含 7 个关键帧,每个帧的间隔是 300 毫秒。当每个帧所关联的时间点到达的时候,所执行的动作是将 currentEarthImage 的值设成该帧对应的地球的一张图片。当 currentEarthImage 的值发生改变的时候,ImageView 就会显示那张图片。

表示月球围绕地球转动的动画使用的是插值型“关键帧动画”。该 Timeline moonTimeline 的效果是使得代表月球的图片按照一个圆形来变换位置。该 Timeline 包含 8 个关键帧,分别表示圆周上的 8 个位置。当每个帧所关联的时间点到达的时候,所执行的动作是 moonX 和 moonY 的值设成计算出来的月球的图片在窗口中的位置。通过 Transform.translate(moonX, moonY) 这样的一个变换来改变图片的位置。插值型“关键帧动画”指的是,程序中声明了 8 个关键帧,系统会自动按照指定的函数来计算图片在中间状态的位置。这里使用的插值函数是线性插值。

值得注意的是,如果使用 代码清单 12 中的方式,运行起来之后,月球的图片的运动并不是一个圆形,而是一个正八边形。这是由于以线性插值的方式计算出来的中间状态的位置与实际需要的弧形有较大的偏差。而目前 JavaFX Script 并没有提供弧形的插值函数。所以一个更好的选择是使用离散型“关键帧动画”,并且提供更多的关键帧,这样使得月球图片的运行轨迹更加平滑。代码清单 13 中给出了新的关键帧的生成方法。

清单 13. 更平滑的关键帧生成方法

function getKeyFrames() : KeyFrame[] {   var frames = [] as KeyFrame[];   for (i in [1..36]) {     var y = 260 - 260 * Math.sin((360 - i * 10) * Math.PI / 180);     var x = 260 + 260 * Math.cos((360 - i * 10) * Math.PI / 180);     var frame = KeyFrame {       time : 200ms * i       action : function() {         moonX = x.intValue();         moonY = y.intValue();       }     };     insert frame into frames;   }   return frames; }

从 代码清单 13 中可以看到,一共定义了 36 个关键帧,每个帧对应的 moonX 和 moonY 的值都是通过计算得出来的。使用了上面的 36 个关键帧之后,运行起来可以看到月球图片的更好的动画效果。

在讨论完 JavaFX Script 中的动画之后,下面将讨论如何部署 JavaFX Script 应用。

部署 JavaFX Script 应用

在完成 JavaFX Script 应用的编写和调试之后,就可以部署该应用了。 JavaFX Script 的应用的部署方式主要有两种,分别是使用 Java Web Start 和使用 Open JavaFX 编译器。下面具体介绍这两种部署方式。

使用 Java Web Start

Java Web Start 是从 JRE 5.0 开始被引入到 Java 运行环境(JRE)中来的。它使得可以从 Web 下载和运行 Java 程序。当本机安装了 5.0 及以上版本的 JRE 后,如果通过浏览器访问内容类型(Content type)是 application/x-java-jnlp-file 的 URL 时,Java Web Start 会自动运行,并下载相应的 JNLP 文件,来启动 Java 应用。

JNLP 的文件内容可以参考 代码清单 14。该 JNLP 文件可以用来启动前面提到的 JavaFX Script 应用“ RSS 订阅源阅读器”。

清单 14. “ RSS 订阅源阅读器”的 JNLP 文件

<?xml version="1.0" encoding="utf-8"?> <jnlp    spec="1.5+"     codebase="http://localhost:8080/javafx"    href="feedReader.jn

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号