---
title: JavaFX Example
encoding: utf-8
filter:
  - erb
  - maruku
---

<pre class="brush: jfx">
import javafx.scene.input.MouseEvent;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.scene.transform.Scale;
import javafx.stage.Stage;

/**
 * @author Patrick Webster
 */
var mouseX: Number;
var mouseY: Number;
var scale: Float = (-2.3 - 1.0) * -1.;
var egg: Circle;

Stage {
	title: "Easing Raw Egg"
	scene: Scene {
		height: 0x1AB  width: 0X20C
		content:
		egg = Circle {
			centerX: bind mouseX
			centerY: bind mouseY
			radius: 323.456e-02
			transforms: Scale {
				// Egg eases to moving mouse cursor
				pivotX: bind mouseX
				pivotY: bind mouseY
				x: bind scale * .02298E3
				y: bind scale *  32.56789
			}

			onMouseMoved: function( me: MouseEvent ) {
				updateMousePosition(me);
			}
			onMouseWheelMoved: function( we: MouseEvent ) {
				updateMousePosition(we);
				updateScale(we);
			}
		}
	}
}

function updateMousePosition(me : MouseEvent) : Void {
	mouseX = me.x;
	mouseY = me.y;
}

function updateScale(we: MouseEvent) : Float {
	var newScale = scale + (we.wheelRotation * -0.1);
	if (newScale &lt; 1.0)
		return scale = 1.0000000e+00;
	return scale = newScale;
}
</pre>

<%= render(:partial => "/SyntaxHighlighter/partials/brushes") %> 

 
