读书人

javafx结构一组玻璃状园Button

发布时间: 2012-11-07 09:56:10 作者: rapoo

javafx构造一组玻璃状园Button

package javafxapplication14;import javafx.stage.Stage;import javafx.scene.Scene;import javafx.scene.paint.Color;import javafx.scene.shape.Rectangle;/** * @author Administrator */function actionPerformed(color:String) :Void {    println(color);}Stage {    title: "button"    width: 320    height:200    scene: Scene {        content: [            Rectangle {                x: 0, y: 0                width: 320, height: 200                fill: Color.web("#4f6068")            },            FXButton {                offsetX: 40                offsetY: 50                lightColor: "#fc1503"                darkColor: "#460702"                action: actionPerformed            },            FXButton {                offsetX: 100                offsetY: 50                lightColor: "#657efd"//042dfb"                darkColor: "#02124d"                action: actionPerformed            },            FXButton {                offsetX: 160                offsetY: 50                lightColor: "#27FB04"                darkColor: "#0B4402"                action: actionPerformed            },            FXButton {                offsetX: 220                offsetY: 50                lightColor: "#f4fd02"                darkColor: "#414301"                action: actionPerformed            }        ]    }}package javafxapplication14;import javafx.scene.CustomNode;import javafx.scene.Group;import javafx.scene.Node;import javafx.scene.paint.Color;import javafx.scene.shape.Circle;import javafx.scene.effect.GaussianBlur;import javafx.scene.paint.LinearGradient;import javafx.scene.paint.Stop;import javafx.scene.shape.LineTo;import javafx.scene.shape.MoveTo;import javafx.scene.shape.Path;import javafx.scene.shape.VLineTo;import javafx.scene.transform.Transform;import javafx.scene.effect.Glow;import javafx.animation.Interpolator;import javafx.animation.KeyFrame;import javafx.animation.Timeline;import javafx.scene.input.MouseEvent;/** * @author Administrator */// place your code herepublic class FXButton extends CustomNode {    package var offsetX:Number;    package var offsetY:Number;    package var lightColor:String;    package var darkColor:String;    var glowLevel:Number = 0.0;    var glow = Glow { level: bind glowLevel };    package var action: function(:String) : Void;    override function create() : Node {        Group {            translateX: offsetX;            translateY: offsetY;            content:[                Group {                    effect: bind glow                    content:[                        Circle {                        effect: GaussianBlur {  radius: 10.0 }                        centerX: 18, centerY: 18                        radius: 18                        fill: Color.BLACK                        transforms: Transform.translate(-2, -2)                        },                        Circle {                            effect: GaussianBlur {  radius: 10.0 }                            centerX: 18, centerY: 18                            radius: 18                            fill: Color.color(1, 1, 1, 0.6)                            transforms: Transform.translate(1, 1)                        },                        Circle {                            centerX: 18, centerY: 18                            radius: 18                            fill:                            LinearGradient {                                startX : 0.0                                startY : 0.0                                endX : 0.0                                endY : 1.0                                stops: [                                    Stop {                                        color : Color.web(darkColor)                                        offset: 0.0                                    },                                    Stop {                                        color : Color.web(lightColor)                                        offset: 1.0                                    },                                ]                            }                        },                        Path {                            fill: Color.BLACK                            stroke: Color.color(1, 1, 1, 0.4)                                                        elements : [                                MoveTo {                                    x : 0.0, y : 0.0                                },                                VLineTo {                                    y : 20                                },                                LineTo {                                    x : 16, y : 10                                },                                LineTo {                                        x : 0.0, y : 0.0                                },                            ]                            transforms: Transform.translate(11, 7)                        },                        Circle {                            effect: GaussianBlur{  radius: 8.0 }                            centerX: 18, centerY: 18                            radius: 15                            fill:                            LinearGradient {                                startX : 0.0                                startY : 0.0                                endX : 0.0                                endY : 1.0                                stops: [                                    Stop {                                        color : Color.WHITE                                        offset: 0.0                                    },                                    Stop {                                        color : Color.TRANSPARENT                                        offset: 1.0                                    },                                ]                            }                        },                    ]                    onMouseEntered: function( e: MouseEvent ):Void {                        fader.rate = 1;                        fader.play();                    }                    onMouseExited: function( e: MouseEvent ):Void {                        fader.rate = -1;                        fader.play();                    }                    onMouseReleased: function( e: MouseEvent ):Void {                        action("lightColor:{lightColor}   darkColor:{darkColor}");                    }                }            ]        }    }    def fader:Timeline = Timeline {        keyFrames : [            KeyFrame {                time : 200ms                values : [                    glowLevel => 0.6 tween Interpolator.LINEAR                ]            }        ]    };}
1 楼 liuwangxia 2009-08-20 [quote=xhuixuanwen]@author Administrator
最好别在Administrator账号下工作,而用普通账号。

读书人网 >软件架构设计

热点推荐