GUI Features
import javafx.animation.*;
var a = 0.0; var b = 5.0;
def kv1 = a => 100.0; // creates a KeyValue
assert(kv1 instanceof KeyValue);
assert(kv1.interpolate == Interpolator.LINEAR); // default Interpolator
def kv2 = b => 50.0 tween Interpolator.EASEBOTH; // sets Interpolator
assert(kv2 instanceof KeyValue);
assert(kv2.interpolate == Interpolator.EASEBOTH);
import javafx.animation.*;
var x = 0;
def kf1 = at(0s) { x => 0 };
assert(kf1 instanceof KeyFrame);
assert(kf1.time == 0s);
assert(sizeof kf1.values == 1); // contains x => 0
var y = 10; var z = 5;
def kf2 = at(10s) { y => 0; z => 10 }; // KeyFrame with two KeyValues
assert(kf2 instanceof KeyFrame);
assert(kf2.time == 10s);
assert(sizeof kf2.values == 2); // contains [y => 0, z => 10]
JavaFX allows the localization of Strings in the source code. It will automatically look up translations of all localized strings. For this you need to provide a property file with translation for every supported language and every script file. For example, if you store your script in a file called myscript.fx, and you want to provide French (international 2-letter-code 'fr') and German ('de') translations, you also need two files myscript_fr.fxproperties and myscript_de.fxproperties. The format of the file is shown below.
def greetingMorning = ##"Good Morning"; // ## marks string as localized
def greetingEvening = ##[greetEvening]"Good Evening"; // string named 'greetEvening'
Content of myscript_de.properties:
"Good Morning" = "Guten Morgen"
"greetEvening" = "Guten Abend"

