JavaFx实现(2)-随机图形绘制

JavaFX属于脚本语言,并且也采取了弱类型进行数据处理,具体对应关系如下:

JavaFX Java
String java.lang.String
Boolean java.lang.Boolean
Number java.lang.Number
Integer byte,short,int,long,BigInteger

例子:

// var s = "Hello";
// s.toUpperCase(); // 结果 "HELLO";
// s.substring(1); // 结果 "ello";
// var n = 1.5;
// n.intValue(); // 结果 1
// (1.5).intValue(); // 结果 1
// s.substring(n); // 结果 "ello"
// var b = true;
// b instanceof Boolean; // 结果 true

这种方式虽然减少了类型转换的烦恼……但也影响解释速度,个人不是太认可……(而且在JavaFX中,很多还是需要转换类型的……)

JavaFX脚本为多种多样的操作提供了声明式、无中间程序逻辑的语法,这些操作包括创建2D动画、设置属性或者声明在模式和视图对象之间的绑定依赖关系。

JavaFX以operation代替了Function,换汤不换药,无视中……

还有‘+’已无法在JavaFX中连接字符串用,需要写成如"Hello ".concat("World")的形式。

大体上先想起这么多,继续写个例子:

/***/ /**
*<p>
*Title:LoonFramework
*</p>
*<p>
*Description:
*</p>
*<p>
*Copyright:Copyright(c)2007
*</p>
*<p>
*Company:LoonFramework
*</p>
*
*
@authorchenpeng
*@email:[email protected]
*
@version0.1
*/


import javafx.ui. * ;
import javafx.ui.canvas. * ;

import java.util. * ;
import java.lang.System;
import java.lang.Thread;

// JavaFXJava
// Stringjava.lang.String
// Booleanjava.lang.Boolean
// Numberjava.lang.Number
// Integerbyte,short,int,long,BigInteger
// vars="Hello";
// s.toUpperCase(); // 结果"HELLO";
// s.substring(1); // 结果"ello";
// varn=1.5;
// n.intValue(); // 结果1
// (1.5).intValue(); // 结果1
// s.substring(n); // 结果"ello"
// varb=true;
// binstanceofBoolean; // 结果true

class CircleModel ... {
attributex:Number;
attributey:Number;
attributer:Number;
attributec:Color;
}


class CircleDraw extends CompositeNode ... {
attributetags:CircleModel
*;
//javafx的操作和c++类似需要提前声明,否则会[Nosuchfunction]
operationmakeing();
}


// 实现composeNode操作
operationCircleDraw.composeNode() ... {
returnGroup...{
content:[
//遍历tags
foreach(tintags)
Circle
...{
//绑定
cx:bindt.x
cy:bindt.y
radius:bindt.r
fill:bindt.c
}

]
}
;
}


// 实现makeing操作
operationCircleDraw.makeing() ... {
varrand
=newRandom();
for(unitintervalunitindur-1)...{
for(tintags)...{
if(t.r==0andrand.nextInt(100)>95)...{
//产生随机坐标
t.x=rand.nextInt(400)+40;
t.y
=rand.nextInt(400)+40;
t.r
=4;
//变换color
t.c=rgba:Color(
rand.nextInt(
256),
rand.nextInt(
256),
rand.nextInt(
256),
rand.nextInt(
128)+64
);
}

//类Basic语法也成……
t.r=if(t.r>200)or(t.r==0)then0elset.r+4;
}

//延迟
Thread.sleep(50);
}

}


vartagContainer
= CircleDraw ... {
tags:foreach(iin[
0..15])CircleModel...{}
}
;

Frame
... {
title:
"JavaFX-随机画圆"
centerOnScreen:
true
//javafx也可使用通常java类
onClose:operation()...{
System.exit(
0);
}

width:
430
height:
430
resizable:
false
content:
//背景设置
Canvas...{
background:black
content:tagContainer
}

visible:
true
}

// 执行操作
tagContainer.makeing();


JavaFx实现(2)-随机图形绘制

你可能感兴趣的:(JavaFX)