シーン内のノードの実際の位置を取得するにはどうすればよいですか。コンテナ/トランスフォームに関係なく、絶対位置。
たとえば、特定のノードを移動して、a
別のノードに一時的にオーバーラップさせたいとしますb
。translateX
そこで、彼のプロパティをに設定したいと思いますb.globalX-a.globalX
。
ドキュメントには次のように記載されています。
レイアウトの目的で、このノードの変換された座標に追加される平行移動の X 座標を定義します。レイアウトを実行するコンテナまたはグループは、ノードを目的のレイアウト位置に配置するために、この変数を layoutBounds.minX に相対的に設定します。
たとえば、子が finalX の最終的な場所を持つ必要がある場合:
child.layoutX = finalX - child.layoutBounds.minX;
つまり、ノードの最終的な座標は
finalX = node.layoutX + node.layoutBounds.minX
ただし、次のコードを実行します。
var rect;
Stage {
title: "Application title"
width: 250
height:250
scene: Scene {
content: [
Stack{content:[rect = Rectangle { width:10 height:10}] layoutX:10}
]
}
}
println("finalX = {rect.layoutX+rect.layoutBounds.minX}");
ドキュメントが一見述べているようfinalX = 0.0
にではなく、私に与えてくれます。finalX = 10.0
JavaFXで絶対に最終的な位置決め座標を取得する明確な方法はありますか?