我有一个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