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方法。