javafx script language
DESCRIPTION
AACIMP 2009 Summer School lecture by Alexander Scherbatiy (Sun Microsystems). "Information Technology" stream. Sun Microsystems course. Part 7.TRANSCRIPT
![Page 1: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/1.jpg)
Sun Proprietary/Confidential: Internal Use Only 1Developer/Community Campaign
Александр Щербатый
Язык JavaFX Script – разработка приложений
![Page 2: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/2.jpg)
JavaFX Script
• Анимация• Видео• Аудио
JavaFX Script – это декларативный язык, ориентированный на создание клиентских, мобильных и веб медиа приложений
Media приложения
2
![Page 3: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/3.jpg)
Декларативный синтаксис
Stage { title: "JavaFX Application" scene: Scene { content: Text { x: 10, y: 30 font: Font { size: 34 } fill: Color.DARKBLUE content: "Hello World!" effect: DropShadow { offsetY: 3 } } }}
3
![Page 4: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/4.jpg)
Привязка данных – data binding
4
CustomSlider { value: bind saturation with inverse minValue: -1.0 maxValue: 1.0 }, ImageView { image: Image { url: "{__DIR__}/giraffe.jpg" } effect: ColorAdjust { saturation: bind saturation } },
var saturation = 0.0;
![Page 5: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/5.jpg)
Обработка событий
CustomButton { action: function() { println("Hello World!") }}
5
![Page 6: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/6.jpg)
Графические объекты
• Фигуры
• Градиенты
6
![Page 7: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/7.jpg)
Графические эффекты
● Затенение● Смешение● Наложение● Отражение● Размытость● Подсветка● Трансформация● Сепия-тонирование
7
![Page 8: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/8.jpg)
Функцииfunction f(x:Number):Number{ Math.cos(x);}
function integral( f: function(Number):Number, a:Number, b: Number, dx: Number):Number{ var s = 0.0; for(x in [a..b step dx]){ s += f(x) * dx; } return s;}
println( integral(f, -Math.PI /2, Math.PI/2, 0.01) );
// output: 1.9999900283082478
![Page 9: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/9.jpg)
График Функции
function sqr(x:Number):Number { x * x }
FunctionGraph { xMin: -2 xMax: 2 scale: scale dx: dx color: Color.RED func: sqr}
9
![Page 10: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/10.jpg)
Последовательности
var seq = [ 2, 3, 4, 5 ];
var sqr = for(n in seq) n * n;
insert 1 into seq; insert 9 after seq[3];
delete seq[ 0 ];
function factors(N:Integer):Integer[] { [ 1 .. N / 2 ] [n| N mod n == 0]}
10
![Page 11: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/11.jpg)
Интеграция с Javaimport java.util.Date;
import javafx.scene.Scene;import javafx.stage.Stage;import javafx.scene.text.Text;
var date = new Date();
Stage{ title: "Date Example" scene: Scene{ content: Text { x: 10 y: 30 content: "Date: {%tF date}" } }} 11
![Page 12: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/12.jpg)
Анимация
var car = Car{ };var angle = 0;
Timeline { repeatCount: Timeline.INDEFINITE keyFrames: [ KeyFrame { time: 0.1s values: angle => 180 tween Interpolator.LINEAR action: function() { car.move(); } } ]} 12
![Page 13: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/13.jpg)
Media компоненты
Stage { title: "Simple Media Player" scene: Scene{ content: MediaComponent { mediaSourceURL: mediaUrl volume: 0.5 visible:true mediaPlayerAutoPlay: true } }}
13
![Page 14: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/14.jpg)
Планетарная системаvar planets = [ Planet{ name: "Mercury" radius: 0.383 eccentricity: 0.20563 }, Planet{ name: "Venus" radius: 0.95 eccentricity: 0.0068 }, Planet{ name: "Earth" radius: 1 eccentricity: 0.01671 } ];
14
![Page 15: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/15.jpg)
Столкновение частицclass Particle extends CustomNode { var radius : Number;
public override function create(): Node { Circle { radius: bind radius fill: RadialGradient { centerX: 75 centerY: 75 radius: 90 proportional: false stops: [ Stop { offset: 0.0 color: Color.RED }, Stop { offset: 1.0 color: Color.DARKRED } ] } effect: Reflection{ } } }} 15
![Page 16: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/16.jpg)
Среда разработки - NetBeans
16
![Page 17: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/17.jpg)
Ссылки• http://java.sun.com/javafx• http://developers.sun.ru/javafx• http://ru.jfx.wikia.com
Среда разработкиhttp://javafx.netbeans.org
Форумhttp://developers.sun.ru/forum
17
![Page 18: JavaFX Script Language](https://reader034.vdocuments.net/reader034/viewer/2022052315/5560b5b7d8b42afe3b8b49c6/html5/thumbnails/18.jpg)
Sun Proprietary/Confidential: Internal Use Only 18Developer/Community Campaign
Александр Щербатый