import javafx.animation.Timeline; import javafx.animation.transition.FadeTransition; import javafx.scene.effect.GaussianBlur; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.paint.LinearGradient; import javafx.scene.paint.Stop; import javafx.scene.shape.ClosePath; import javafx.scene.shape.LineTo; import javafx.scene.shape.MoveTo; import javafx.scene.shape.Path; import javafx.scene.shape.PathElement; import javafx.stage.Stage; // 星の形を表す PathElement var starElements: PathElement[] = [ MoveTo { x: 0 y: -50 }, LineTo { x: 11.803 y: -11.804 }, LineTo { x: 50 y: -11.804 }, LineTo { x: 19.098 y: 11.804 }, LineTo { x: 30.902 y: 50 }, LineTo { x: 0 y: 26.394 }, LineTo { x: -30.902 y: 50 }, LineTo { x: -19.098 y: 11.804 }, LineTo { x: -50 y: -11.804 }, LineTo { x: -11.803 y: -11.804 }, ClosePath {} ]; // 星形 var star: Node = Path { translateX: 100 translateY: 100 fill: Color.web("#CCCC00") stroke: null elements: starElements }; // ぼかした星形 var blurredStar: Node = Path { translateX: 100 translateY: 100 fill: Color.web("#FFFF00") stroke: null // ぼかしをかける effect: GaussianBlur { radius: 20 } elements: starElements }; var fadeTransition = FadeTransition { // フェードの対象となるノード node: blurredStar // 不透明度を 0.3 から 1.0 まで変化させる fromValue: 0.3 toValue: 1.0 duration: 0.5s repeatCount: Timeline.INDEFINITE autoReverse: true }; fadeTransition.play(); Stage { title: "Fading Sample" scene: Scene { width: 200 height: 200 fill: LinearGradient { startX: 0.0, startY: 0.0, endX: 0.0, endY: 1.0 proportional: true stops: [ Stop { offset: 0.0 color: Color.web("#000022") }, Stop { offset: 1.0 color: Color.web("#000066") } ] } content: [blurredStar, star] } }