test/script/jfx/kaleidoscope.js

changeset 667
bda654c6d59c
parent 638
f22742d5daa3
child 952
6d5471a497fb
child 962
ac62e33a99b0
     1.1 --- a/test/script/jfx/kaleidoscope.js	Tue Nov 05 09:13:41 2013 +0530
     1.2 +++ b/test/script/jfx/kaleidoscope.js	Tue Nov 05 13:09:40 2013 +0400
     1.3 @@ -30,13 +30,6 @@
     1.4   */
     1.5  
     1.6  TESTNAME = "kaleidoscope";
     1.7 -WAIT = 4000;
     1.8 -
     1.9 -var Paint                = Java.type("javafx.scene.paint.Paint");
    1.10 -var Canvas               = Java.type("javafx.scene.canvas.Canvas");
    1.11 -var BorderPane           = Java.type("javafx.scene.layout.BorderPane");
    1.12 -var StackPane            = Java.type("javafx.scene.layout.StackPane");
    1.13 -var StrokeLineCap        = Java.type("javafx.scene.shape.StrokeLineCap");
    1.14          
    1.15  var WIDTH = 800;
    1.16  var HEIGHT = 600;
    1.17 @@ -56,26 +49,28 @@
    1.18  var r,e;
    1.19  var fade;
    1.20  var prv_x,prv_y,prv_x2,prv_y2;
    1.21 +var isFrameRendered = false;
    1.22  
    1.23  function renderFrame() {
    1.24 -	a=0.2*angle;
    1.25 -	b=0.7*angle;
    1.26 -	r=0;
    1.27 -	fade=32;
    1.28 -	for(var i=0;i<6;i++)
    1.29 -		{
    1.30 -		c[i]=1.0/(i+1)/2;
    1.31 -		d[i]=1.0/(i+1)/2;
    1.32 -		}
    1.33 -	radius=Math.round((WIDTH+HEIGHT)/8);
    1.34 -	e=radius*0.2;
    1.35 -	p_x=Math.round(WIDTH/2);
    1.36 -	p_y=Math.round(HEIGHT/2);
    1.37 -	x=(radius*c[0])*Math.cos(a*d[1])+(radius*c[2])*Math.sin(a*d[3])+(radius*c[4])*Math.sin(a*d[5]);
    1.38 -	y=(radius*c[5])*Math.sin(a*d[4])+(radius*c[3])*Math.cos(a*d[2])+(radius*c[1])*Math.cos(a*d[0]);
    1.39 -    for (i = 0; i < 800; i++) {
    1.40 -        anim();
    1.41 +	if (!isFrameRendered) {
    1.42 +        a=0.2*angle;
    1.43 +		b=0.7*angle;
    1.44 +		r=0;
    1.45 +		fade=32;
    1.46 +		for(var i=0;i<6;i++)
    1.47 +			{
    1.48 +			c[i]=1.0/(i+1)/2;
    1.49 +			d[i]=1.0/(i+1)/2;
    1.50 +			}
    1.51 +		radius=Math.round((WIDTH+HEIGHT)/8);
    1.52 +		e=radius*0.2;
    1.53 +		p_x=Math.round(WIDTH/2);
    1.54 +		p_y=Math.round(HEIGHT/2);
    1.55 +		x=(radius*c[0])*Math.cos(a*d[1])+(radius*c[2])*Math.sin(a*d[3])+(radius*c[4])*Math.sin(a*d[5]);
    1.56 +		y=(radius*c[5])*Math.sin(a*d[4])+(radius*c[3])*Math.cos(a*d[2])+(radius*c[1])*Math.cos(a*d[0]);
    1.57 +        isFrameRendered = true;
    1.58      }
    1.59 +    anim();
    1.60  }
    1.61  
    1.62  function anim() {
    1.63 @@ -154,9 +149,19 @@
    1.64  
    1.65  var stack = new StackPane();
    1.66  var pane = new BorderPane();
    1.67 -
    1.68  pane.setCenter(canvas);
    1.69  stack.getChildren().add(pane);
    1.70  $STAGE.scene = new Scene(stack);
    1.71 -renderFrame();
    1.72 -checkImageAndExit();
    1.73 \ No newline at end of file
    1.74 +var frame = 0;
    1.75 +var timer = new AnimationTimerExtend() {
    1.76 +    handle: function handle(now) {
    1.77 +        if (frame < 800) {
    1.78 +            renderFrame();
    1.79 +            frame++;
    1.80 +        } else {
    1.81 +            checkImageAndExit();
    1.82 +            timer.stop();
    1.83 +        }
    1.84 +    }
    1.85 +};
    1.86 +timer.start();

mercurial