Главная | Описание языка | FXD | API | Примеры
| Инструменты Разработки | Новости | Ресурсы | Форум
Конкурс Tower defence [ ]
Сайт конкурса Tower Defence
Вы можете принять участие в качестве:
Программиста
Дизайнера
Блоггера
Декларативный синтаксис [ ]
Создание основного окна:
Пример использования
Картинка
import javafx.stage.Stage;
import javafx.scene.Scene;
Stage {
title: "Tower defence"
scene: Scene {
width: 550
height: 550
content: []
}
}
Layouts, Controls [ ]
Пример использования
Картинка
HBox {
spacing: 15
translateX: 10
translateY: 10
nodeHPos: HPos.CENTER
nodeVPos: VPos.CENTER
content: [
Button {
text: "Play"
action: function() {}
}
Button {
text: "Pause"
action: function() {}
}
Label {
text: "Status"
}
]
}
Каскадные таблицы стилей - CSS [ ]
Пример использования
Картинка
Scene {
stylesheets: "{__DIR__}style.css"
}
.button {
-fx-text-fill: #e4f3fc;
-fx-font: 15pt "Tahoma Bold";
-fx-padding: 10;
-fx-color: #2d4b8e
}
.button:hover{
-fx-color: #395bae;
}
.label1 {
-fx-text-fill: green;
-fx-font: 20pt "Tahoma Bold";
}
Связывание данных [ ]
var a = bind expr<param1,..,paramN>
Component{
attribute: bind expr<param1,..,paramN>
}
Пример использования
Картинка
var status = "initial";
HBox {
content: [
Button {
text: "Play"
action: function() {
status = "Played"
}
}
Button {
text: "Pause"
action: function() {
status = "Paused"
}
}
Label {
styleClass: "label1"
text: bind "Status: {status}"
}
]
}
Дорога [ ]
Пример использования
Картинка
Path {
stroke: Color.GRAY
strokeWidth: 20
elements: [
MoveTo { x: 50, y: 120 }
LineTo { x: 250, y: 120 }
ArcTo {
x: 250, y: 300, radiusX: 25,
radiusY: 20, sweepFlag: true
}
LineTo { x: 150, y: 300 }
ArcTo {
x: 150, y: 480, radiusX: 25,
radiusY: 20, sweepFlag: false
}
LineTo { x: 340, y: 480 }
]
}
Существо [ ]
class Creature extends CustomNode {
public override function create(): Node {
Group {
content: []
}
}
}
Пример использования
Картинка
class Creature extends CustomNode {
public override function create(): Node {
ImageView {
image: Image {
url: "{__DIR__}star.png"
}
}
}
}
Анимация [ ]
Пример использования
Картинка
PathTransition {
duration: 15s
node: creature
path: AnimationPath.createFromPath(path)
interpolator: Interpolator.LINEAR
orientation: OrientationType.ORTHOGONAL_TO_TANGENT
}.play();
Пример использования
Картинка
def N = 5;
Timeline {
keyFrames: for(i in [0..<N])KeyFrame {
time: 2s.mul(i)
action: function(){
insert Creature { path: path } into creatures;
}
}
}.play();