我有一個ImageView
,我將其添加到TilesPane
佈局。我想將ImageView
從指定的(x,y)
位置動畫到它將添加到的位置。將動畫節點轉換爲佈局
我想是這樣的:
TilePane tp = new TilePane();
...
ImageView iv = new ImageView(img);
tp.getChildren().add(iv);
TranslateTransition tt = new TranslateTransition(Duration.seconds(5), iv);
tt.setFromX(0);
tt.setFromY(0);
tt.setToX(iv.x);
tt.setToY(iv.y);
tt.play();
但我得到這個錯誤:error: x has private access in ImageView
我試圖這樣做:
- 圖像添加到
TilePane
佈局。 - 獲取圖像位置。
- 將圖像從指定的
(x,y)
位置動畫到其當前位置。
如果這不是正確的/最好的方法來做到這一點,有什麼選擇?如果是這樣,我該如何解決這個錯誤?
請出示[所有相關的代碼(HTTPS: //stackoverflow.com/help/mcve)和一個完整的堆棧跟蹤(如果有的話)。你不說你是怎麼做的「2.獲取圖片位置。」 – jewelsea
@jewelsea分別使用'iv.x'和'ix.y'作爲x和y座標 – sudoman
哦,我明白了,那不會編譯。您需要[生成佈局傳遞](http://stackoverflow.com/questions/26152642/get-the-height-of-a-node-in-javafx-generate-a-layout-pass)來確定哪裏節點將在其layoutX和layoutY值設置後結束,然後設置爲源位置與佈局位置的負差。您不指定源位置的座標系。也許如果你使用場景座標和sceneToLocal。只是有些想法,也許我會試試看。 – jewelsea