/*
* Main.fx
*
* Created on 30 Apr, 2009, 5:00:04 PM
*/
package fisheyemenu;
import java.lang.Math;
import javafx.scene.Cursor;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
/**
* @author Rakesh Menon
*/
var bgRect = Rectangle {
width: 800
height: 300
onMouseMoved: onMouseMoved
fill: Color.WHITE
cursor: Cursor.HAND
};
var imageView : ImageView[];
for(i in [0..7]) {
insert ImageView {
translateX: 60 * i
image: Image {
url: "{__DIR__}images/logo_{i}.gif"
}
scaleX: 0.65
scaleY: 0.65
smooth: true
onMouseMoved: function(e) {
e.node.toFront();
}
} into imageView;
}
def maxScale = 2.0;
def multiplier = 60.0;
function onMouseMoved(e : MouseEvent) : Void {
for(iv in imageView) {
var imageScale = maxScale - Math.min(maxScale - 1, Math.abs(e.x - (iv.translateX + 70 / 2)) / multiplier);
iv.scaleX = imageScale/1.5;
iv.scaleY = imageScale/1.5;
}
}
Stage {
title: "Fish Eye Menu"
scene: Scene {
content: [ bgRect, Group { content: imageView } ]
width: 570
height: 150
}
resizable: false
}
|