JS异步编程一:用Jscex画圆

一.简介

创新互联建站是一家专业提供长兴企业网站建设,专注与成都做网站、网站设计、外贸营销网站建设HTML5、小程序制作等业务。10年已为长兴众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

关注老赵的jscex很久了,jscex利用eval(str)的无限可能,从“$async” 到“async”,从不支持if else 等 到支持 if else等·,jscex正在不断完善和优化当中。jscex完全可以投入生产环境了··

二.画圆

在支持html5的浏览器中执行下面代码:

 
 
 
 
  1.  
  2.  
  3.  
  4. Your browser does not support the canvas element. 
  5. canvas> 
  6.  
  7.     var c = document.getElementById("myCanvas"); 
  8.     var ccxt = c.getContext("2d"); 
  9.     var x = 150; 
  10.     var y = 150; 
  11.     var r = 100; 
  12.     cxt.moveTo(x - r, y); 
  13.     for (var i = x - r; i < x + r + 1; i++) { 
  14.         var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  15.         cxt.lineTo(i, y + tempY); 
  16.     } 
  17.     cxt.moveTo(x - r, y); 
  18.     for (var i = x - r; i < x + r + 1; i++) { 
  19.         var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  20.         cxt.lineTo(i, y - tempY); 
  21.     } 
  22.       cxt.stroke(); 
  23. script> 
  24. body> 
  25. html> 

在Canvas里显示如下:

但是,我们明明是在画圆,怎么没有看到画圆的过程?javascript就是这样,解释完就画完了,而不会呈现解释的过程,这也是为什么javascript不用考虑多线程问题,仅仅UI线程。那么怎么看到画圆的过程?

jscex闪亮登场!

 
 
 
 
  1.  
  2.  
  3.  
  4. Your browser does not support the canvas element. 
  5. canvas> 
  6.     script> 
  7.     script> 
  8.     script> 
  9.     script> 
  10.  
  11.     var c = document.getElementById("myCanvas"); 
  12.     var ccxt = c.getContext("2d"); 
  13.     var x = 150; 
  14.     var y = 150; 
  15.     var r = 100; 
  16.     var drawAsync = eval(Jscex.compile("async", function () { 
  17.         cxt.moveTo(x - r, y); 
  18.         for (var i = x - r; i < x + r + 1; i++) { 
  19.             $await(Jscex.Async.sleep(10)); 
  20.             var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  21.             cxt.lineTo(i, y + tempY); 
  22.             cxt.stroke(); 
  23.         } 
  24.         cxt.moveTo(x - r, y); 
  25.         for (var i = x - r; i < x + r + 1; i++) { 
  26.             $await(Jscex.Async.sleep(10)); 
  27.             var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  28.             cxt.lineTo(i, y - tempY); 
  29.             cxt.stroke(); 
  30.         }      
  31.     })); 
  32.     drawAsync().start(); 
  33. script> 
  34. body> 
  35. html> 

这样就可以目睹画圆全过程!

网页标题:JS异步编程一:用Jscex画圆
当前地址:http://www.36103.cn/qtweb/news48/33098.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联