Usare le animazioni in TornadoFX e Kotlin

Mattepuffo's logo
Usare le animazioni in TornadoFX e Kotlin

Usare le animazioni in TornadoFX e Kotlin

Non so quante animazioni stile web potremmo mai usare in un programma per desktop, ma conoscere come si fa di certo non fa male.

Vediamo, quindi, come creare animazioni usando TornadoFX e Kotlin.

In verità è abbastanza semplice:

import javafx.geometry.Insets
import javafx.util.Duration
import tornadofx.*

class MainView : View() {

    override val root = stackpane()

    init {
        with(root) {
            val rectangle = rectangle(width = 60.0, height = 40.0) {
                padding = Insets(20.0)
            }
            timeline {
                keyframe(Duration.seconds(5.0)) {
                    keyvalue(rectangle.rotateProperty(), 90.0)
                }
            }
        }
    }
}

Qui abbiamo un oggetto rectangle, e sotto impostiamo una timeline; qui noterete due parole sicuramente conosciute da chi sviluppa animazioni in ambito web: keyframe e keyvalue.

Queste sono le due istruzioni che eseguono il grosso del lavoro.

In questo esempio ci limitiamo a far ruotare il rettangolo; ma possiamo anche smussare gli angoli mentre ruota, e farlo piano piano diventare un ovale:

import javafx.geometry.Insets
import javafx.util.Duration
import tornadofx.*

class MainView : View() {

    override val root = stackpane()

    init {
        with(root) {
            val rectangle = rectangle(width = 60.0, height = 40.0) {
                padding = Insets(20.0)
            }
            timeline {
                keyframe(Duration.seconds(5.0)) {
                    keyvalue(rectangle.rotateProperty(), 90.0)
                    keyvalue(rectangle.arcWidthProperty(), 60.0)
                    keyvalue(rectangle.arcHeightProperty(), 60.0)
                }
            }
        }
    }
}

Abbiamo semplicemente aggiunto due keyvalue, indicando diverse "proprietà".

Enjoy!


Condividi

Commentami!