6.4 在JavaFX中使用FXZ文件
在JavaFX腳本中使用FXZ文件是非常有用的技能。訪問FXZ文件并不需要很多腳本代碼,實(shí)際上,JavaFX提供了專門處理FXZ文件的節(jié)點(diǎn),F(xiàn)XDNode節(jié)點(diǎn)就是用來在FXZ文件中加載圖像的。
FXDNode節(jié)點(diǎn)位于javafx.fxd.FXDNode程序包中,處理FXZ文件時必須引入該程序包。
import javafx.fxd.FXDNode;
說明:
下面例子中假定butterfly.fxz文件已經(jīng)導(dǎo)入到當(dāng)前程序包的Image文件夾中。
首先創(chuàng)建FXDNode節(jié)點(diǎn)并加載butterfly.fxz文件。創(chuàng)建一個變量名為butterflyGroup,并將其指定為FXDNode類型,代碼如下:
var butterflyGroup : FXDNode = FXDNode{
url:"{__DIR__}images/butterfly.fxz"
};
現(xiàn)在可通過調(diào)用butterflyGroup來訪問FXDNode節(jié)點(diǎn),url參數(shù)指向images文件夾的butterfly.fxz文件。注意butterflyGroup 變量使用:FXDNode符號指定為 FXDNode類型。這不是必須要做的,因?yàn)镴avaFX不是強(qiáng)類型語言,但這樣做仍是非常好的選擇。
接下來,提取蝴蝶圖像并移動到不同位置的背景下。下面的代碼提取butterfly圖層、移動并旋轉(zhuǎn)它。
var butterfly = butterflyGroup.getNode("butterfly");
butterfly.translateX = 50;
butterfly.translateY = 50;
butterfly.rotate = 45;
FXDNode節(jié)點(diǎn)的getNode方法是用來從加載的FXZ文件中提取圖層,該方法獲得的圖層名就是Photoshop導(dǎo)出圖像前的圖層名。本例中要提取butterfly圖層,因此圖層名 butterfly也傳遞給getNode方法。