Skip to content

Instantly share code, notes, and snippets.

@ksky
Created June 13, 2012 07:58
Show Gist options
  • Save ksky/2922653 to your computer and use it in GitHub Desktop.
Save ksky/2922653 to your computer and use it in GitHub Desktop.
GroovyFX Animation Sample (groovy port of gist:2917266)
// GroovyFX version of "JavaFX Animation Sample": https://gist.github.com/2917266
@Grab('org.codehaus.groovyfx:groovyfx:0.2')
import static groovyx.javafx.GroovyFX.start
start {
stage = stage {
scene(width: 400, height: 250) {
// --- >8 --- Cut here for GroovyFxPad --- >8 ---
root = group {
rect = rectangle(x: 50, y: 50, width: 100, height: 75,
fill: red, opacity: 0.0) {
fadein = fadeTransition(500.ms, to: 1.0)
translate = translateTransition(1000.ms, fromX: 0.0, toX: 200.0,
autoReverse: true, cycleCount: 5)
}
colorchange = timeline(autoReverse: true, cycleCount: 4) {
at (600.ms) { change (rect, 'fill') { to green } }
}
circ = circle(centerX: 150, centerY: 150, radius: 50,
fill: cyan, opacity: 0.0) {
fadein2 = fadeTransition(500.ms, to: 1.0)
scale = scaleTransition(1000.ms, fromX: 1.0, toX: 2.0,
fromY: 1.0, toY: 0.75,
autoReverse: true, cycleCount: 2)
fadeout = fadeTransition(500.ms, to: 0.0,
onFinished: { root.children.remove(circ) })
}
timeline = timeline {
at ( 500.ms, onFinished: { fadein.play() })
at (1000.ms, onFinished: { translate.play() })
at (1500.ms, onFinished: { colorchange.play() })
at (2000.ms, onFinished: { fadein2.play() })
at (2500.ms, onFinished: { scale.play() })
at (5000.ms, onFinished: { fadeout.play() })
}
timeline.play()
}
// --- >8 --- Cut here for GroovyFxPad --- >8 ---
}
}
stage.show()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment