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();