Z-Ordnung in Javafx
Frage
Wie setze ich Z-Ordnung für VBox
in Javafx?
Lösung
Z-Order in Javafx ist eigentlich die Reihenfolge im Szenengraph, z. in der Inhaltssequenz der Szene (dann im Inhalt der Gruppen, Container usw.).
Alle Knoten haben auch Funktionen für tofront () und toback (), um diese Reihenfolge zu ändern. Für eine feinere Steuerung müssen Sie Knoten von einer Stelle entfernen und in der Sequenz höher oder niedriger einfügen.
Andere Tipps
Mit den Funktionen tofront () und toback () können Sie tatsächlich die Z-Ordnung beeinflussen, sind sich jedoch bewusst, dass dies auch das Layout beeinflusst. Die Hbox und Vbox verwenden beispielsweise auch die Reihenfolge der Kinder, um das Layout zu erledigen, und verschiebt sie etwas an die Vorderseite bis zum Ende des [HV] -Boxs. Dies ist möglicherweise nicht das, wonach Sie suchen.
Ich suchte nach einer Möglichkeit, eine Animation mit dem animierten Knoten auf allen anderen zu machen, ohne das Layout durcheinander zu bringen. Es scheint keine Möglichkeit zu tun, da die Z-Order und die Layout-Reihenfolge aus der Kinderordnung entnommen werden.
Während die anderen Antworten noch korrekt sind, fügte Javafx 9 eine Möglichkeit hinzu, die Z-Ordnung zu manipulieren, ohne die Kinderliste zu ändern. Dies geschieht mit dem Node.viewOrder
Eigentum.
Javadoc:
Definiert die Render- und Auswahlreihenfolge davon
Node
innerhalb seines Elternteils.Diese Eigenschaft wird verwendet, um die Render- und Auswahl der Reihenfolge eines Knotens innerhalb seines Elternteils zu ändern, ohne die Eltern neu zu ordnen
children
aufführen. Dies kann beispielsweise als effizientere Methode zur Implementierung der Transparenzsortierung verwendet werden. Dazu kann eine Anwendung die zuweisenviewOrder
Wert jedes Knotens zum berechneten Abstand zwischen diesem Knoten und dem Betrachter.Der Elternteil wird seine durchqueren
children
bei AbnahmeviewOrder
bestellen. Dies bedeutet, dass ein Kind mit einem niedrigeren KindviewOrder
wird vor einem Kind mit einem höher seinviewOrder
. Wenn zwei Kinder dasselbe habenviewOrder
, Der Elternteil durchquert sie in der Reihenfolge, die er im Elternteil erscheinenchildren
aufführen.Jedoch,
viewOrder
verändert das Layout nicht und konzentriertNode
innerhalb seines Elternteils. Ein Elternteil durchquert immer seinechildren
Listen Sie in der Reihenfolge auf, wenn Sie Layout oder Fokus -Traversal durchführen.Standardwert:
0.0
Seit:
9