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")的形式。

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

JavaFx实现(2)-随机图形绘制/**
JavaFx实现(2)-随机图形绘制 * <p>
JavaFx实现(2)-随机图形绘制 * Title: LoonFramework
JavaFx实现(2)-随机图形绘制 * </p>
JavaFx实现(2)-随机图形绘制 * <p>
JavaFx实现(2)-随机图形绘制 * Description:
JavaFx实现(2)-随机图形绘制 * </p>
JavaFx实现(2)-随机图形绘制 * <p>
JavaFx实现(2)-随机图形绘制 * Copyright: Copyright (c) 2007
JavaFx实现(2)-随机图形绘制 * </p>
JavaFx实现(2)-随机图形绘制 * <p>
JavaFx实现(2)-随机图形绘制 * Company: LoonFramework
JavaFx实现(2)-随机图形绘制 * </p>
JavaFx实现(2)-随机图形绘制 * 
JavaFx实现(2)-随机图形绘制 * 
@author chenpeng
JavaFx实现(2)-随机图形绘制 * @email:[email][email protected][/email]
JavaFx实现(2)-随机图形绘制 * 
@version 0.1
JavaFx实现(2)-随机图形绘制 
*/

JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制
import javafx.ui.*;
JavaFx实现(2)-随机图形绘制
import javafx.ui.canvas.*;
JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制
import java.util.*;
JavaFx实现(2)-随机图形绘制
import java.lang.System;
JavaFx实现(2)-随机图形绘制
import java.lang.Thread;
JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制
//JavaFX     Java
JavaFx实现(2)-随机图形绘制
//String    java.lang.String
JavaFx实现(2)-随机图形绘制
//Boolean    java.lang.Boolean
JavaFx实现(2)-随机图形绘制
//Number    java.lang.Number
JavaFx实现(2)-随机图形绘制
//Integer    byte,short,int,long,BigInteger
JavaFx实现(2)-随机图形绘制
// var s = "Hello";
JavaFx实现(2)-随机图形绘制
// s.toUpperCase(); // 结果 "HELLO";
JavaFx实现(2)-随机图形绘制
// s.substring(1);  // 结果 "ello";
JavaFx实现(2)-随机图形绘制
// var n = 1.5;
JavaFx实现(2)-随机图形绘制
// n.intValue();    // 结果 1
JavaFx实现(2)-随机图形绘制
// (1.5).intValue();    // 结果 1
JavaFx实现(2)-随机图形绘制
// s.substring(n);  // 结果 "ello"
JavaFx实现(2)-随机图形绘制
// var b = true;
JavaFx实现(2)-随机图形绘制
// b instanceof Boolean; // 结果 true
JavaFx实现(2)-随机图形绘制

JavaFx实现(2)-随机图形绘制
class CircleModel{
JavaFx实现(2)-随机图形绘制    attribute x: Number;
JavaFx实现(2)-随机图形绘制    attribute y: Number;
JavaFx实现(2)-随机图形绘制    attribute r: Number;
JavaFx实现(2)-随机图形绘制    attribute c: Color;
JavaFx实现(2)-随机图形绘制}

JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制
class CircleDraw extends CompositeNode{
JavaFx实现(2)-随机图形绘制    attribute tags: CircleModel
*;
JavaFx实现(2)-随机图形绘制    
//javafx的操作和c++类似需要提前声明,否则会[No such function]
JavaFx实现(2)-随机图形绘制
    operation makeing();
JavaFx实现(2)-随机图形绘制}

JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制
//实现composeNode操作
JavaFx实现(2)-随机图形绘制
operation CircleDraw.composeNode() {
JavaFx实现(2)-随机图形绘制    
return Group{
JavaFx实现(2)-随机图形绘制        content: [
JavaFx实现(2)-随机图形绘制        
//遍历tags
JavaFx实现(2)-随机图形绘制
            foreach(t in tags)
JavaFx实现(2)-随机图形绘制                Circle 
{
JavaFx实现(2)-随机图形绘制                
//绑定
JavaFx实现(2)-随机图形绘制
                    cx: bind t.x
JavaFx实现(2)-随机图形绘制                    cy: bind t.y
JavaFx实现(2)-随机图形绘制                    radius: bind t.r
JavaFx实现(2)-随机图形绘制                    fill: bind t.c
JavaFx实现(2)-随机图形绘制                }

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

JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制
//实现makeing操作
JavaFx实现(2)-随机图形绘制
operation CircleDraw.makeing(){
JavaFx实现(2)-随机图形绘制    var rand 
= new Random();
JavaFx实现(2)-随机图形绘制    
for (unitinterval unit in dur -1){
JavaFx实现(2)-随机图形绘制        
for(t in tags){
JavaFx实现(2)-随机图形绘制            
if(t.r == 0 and rand.nextInt(100> 95){
JavaFx实现(2)-随机图形绘制                
//产生随机坐标
JavaFx实现(2)-随机图形绘制
                t.x = rand.nextInt(400+ 40;
JavaFx实现(2)-随机图形绘制                t.y 
= rand.nextInt(400+ 40;
JavaFx实现(2)-随机图形绘制                t.r 
= 4;
JavaFx实现(2)-随机图形绘制                
//变换color
JavaFx实现(2)-随机图形绘制
                t.c = rgba: Color(
JavaFx实现(2)-随机图形绘制                    rand.nextInt(
256),
JavaFx实现(2)-随机图形绘制                    rand.nextInt(
256),
JavaFx实现(2)-随机图形绘制                    rand.nextInt(
256),
JavaFx实现(2)-随机图形绘制                    rand.nextInt(
128+ 64
JavaFx实现(2)-随机图形绘制                );
JavaFx实现(2)-随机图形绘制            }

JavaFx实现(2)-随机图形绘制            
//类Basic语法也成……
JavaFx实现(2)-随机图形绘制
            t.r = if (t.r > 200) or (t.r == 0) then 0 else t.r + 4;
JavaFx实现(2)-随机图形绘制        }

JavaFx实现(2)-随机图形绘制        
//延迟
JavaFx实现(2)-随机图形绘制
        Thread.sleep(50);
JavaFx实现(2)-随机图形绘制    }

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

JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制var tagContainer 
= CircleDraw{
JavaFx实现(2)-随机图形绘制    tags: foreach(i in [
0..15])CircleModel{}
JavaFx实现(2)-随机图形绘制}
;
JavaFx实现(2)-随机图形绘制
JavaFx实现(2)-随机图形绘制Frame
{
JavaFx实现(2)-随机图形绘制    title: 
"JavaFX - 随机画圆"
JavaFx实现(2)-随机图形绘制    centerOnScreen: 
true
JavaFx实现(2)-随机图形绘制    
//javafx也可使用通常java类
JavaFx实现(2)-随机图形绘制
    onClose: operation(){
JavaFx实现(2)-随机图形绘制        System.exit(
0);
JavaFx实现(2)-随机图形绘制    }
 
JavaFx实现(2)-随机图形绘制    width: 
430
JavaFx实现(2)-随机图形绘制    height: 
430
JavaFx实现(2)-随机图形绘制    resizable: 
false
JavaFx实现(2)-随机图形绘制    content:
JavaFx实现(2)-随机图形绘制    
//背景设置
JavaFx实现(2)-随机图形绘制
    Canvas {
JavaFx实现(2)-随机图形绘制        background: black
JavaFx实现(2)-随机图形绘制        content: tagContainer
JavaFx实现(2)-随机图形绘制    }

JavaFx实现(2)-随机图形绘制    visible: 
true
JavaFx实现(2)-随机图形绘制}

JavaFx实现(2)-随机图形绘制
//执行操作
JavaFx实现(2)-随机图形绘制
tagContainer.makeing();
JavaFx实现(2)-随机图形绘制    


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



本文转自 cping 51CTO博客,原文链接:http://blog.51cto.com/cping1982/130159