使用图像(13)

6.4  在JavaFX中使用FXZ文件

在JavaFX脚本中使用FXZ文件是非常有用的技能。访问FXZ文件并不需要很多脚本代码,实际上,JavaFX提供了专门处理FXZ文件的节点,FXDNode节点就是用来在FXZ文件中加载图像的。

FXDNode节点位于javafx.fxd.FXDNode程序包中,处理FXZ文件时必须引入该程序包。

import javafx.fxd.FXDNode;

说明:

下面例子中假定butterfly.fxz文件已经导入到当前程序包的Image文件夹中。

首先创建FXDNode节点并加载butterfly.fxz文件。创建一个变量名为butterflyGroup,并将其指定为FXDNode类型,代码如下:

var butterflyGroup : FXDNode = FXDNode{

url:"{__DIR__}images/butterfly.fxz"

};

现在可通过调用butterflyGroup来访问FXDNode节点,url参数指向images文件夹的butterfly.fxz文件。注意butterflyGroup 变量使用:FXDNode符号指定为 FXDNode类型。这不是必须要做的,因为JavaFX不是强类型语言,但这样做仍是非常好的选择。

接下来,提取蝴蝶图像并移动到不同位置的背景下。下面的代码提取butterfly图层、移动并旋转它。

var butterfly = butterflyGroup.getNode("butterfly");

butterfly.translateX = 50;

butterfly.translateY = 50;

butterfly.rotate = 45;

FXDNode节点的getNode方法是用来从加载的FXZ文件中提取图层,该方法获得的图层名就是Photoshop导出图像前的图层名。本例中要提取butterfly图层,因此图层名 butterfly也传递给getNode方法。

读书导航