第十日

此刻我的思想真的枯竭了

Jscex异步编程库的 使用方法

Jscex异步编程库,该库由国人 赵劼 开发。是开源的,你可以上https://github.com/JeffreyZhao/jscex免费获取到。如果你想进一步了解,请访问http://blog.zhaojie.me/tag/Jscex/来学习更多。

按照老赵的解释:Jscex的核心功能之一,便是对异步编程进行了极大程度的简化,帮助让开发人员摆脱异步编程方面烦恼,将注意力尽可能多地放在逻辑的表现上,而非异步编程过程中的各类奇技淫巧。

在Canvas上用,我理解的就是把JavaScript绘图,变换等操作按照时间轴显示出来,但是按照老赵的意思,貌似时间轴在表面上是用不到的。

如果要使用Jscex的异步编程库,先从github上获取Jscex的压缩包,解压后有src文件夹

然后在你的html文件中引入js

<script src="uglifyjs-parser.js"></script>
<script src="jscex-jit.js"></script>
<script src="jscex-builderbase.js"></script>
<script src="jscex-async.js"></script>
<script src="jscex-async-powerpack.js"></script>

当然,文件的目录你要写对。

下面代码是Jscex的简单示例,演示一个用Jscex从300,170的坐标点画300像素长的直线过程。

var canvas = document.getElementById("myCanvas");
var cxt = canvas.getContext("2d");
var line = {
	x: 300,
	y: 170,
	length: 300,
	width: 4
};

var lineAsync = eval(Jscex.compile("async", function () {
	try{
		cxt.lineWidth = line.width;
		cxt.moveTo(line.x,line.y);

		for(var i=0; i<line.length; i++){
		$await(Jscex.Async.sleep(10));
		line.x++;
		line.y++;
		cxt.lineTo(line.x,line.y);
		cxt.stroke();

		}
	} catch (e) {alert(e)}

		}));
lineAsync().start();

当然你也可以不用Jscex,但是你会看不到画的过程。以下是不用Jscex的示例:

var canvas = document.getElementById("myCanvas");
var cxt = canvas.getContext("2d");
var line = {
	x: 300,
	y: 170,
	length: 300,
	width: 4
};
cxt.lineWidth = line.width;
cxt.moveTo(line.x,line.y);
cxt.lineTo(line.x+300,line.y+300);
cxt.stroke();

HTML代码是:

<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Canvas Test</title>
		<script language="javascript" type="text/javascript" src="./src/uglifyjs-parser.js"></script>
		<script language="javascript" type="text/javascript" src="./src/jscex-jit.js"></script>
		<script language="javascript" type="text/javascript" src="./src/jscex-builderbase.js"></script>
		<script language="javascript" type="text/javascript" src="./src/jscex-async.js"></script>
		<script language="javascript" type="text/javascript" src="./src/jscex-async-powerpack.js"></script>
	</head>
	<body style="margin:0;padding:0">
        <!--上面的引入JS的路径你要写对,我是放在同目录下src文件夹下-->
        <canvas style="border:1px solid #c3c3c3;" id="myCanvas" width="800" height="600" >
                you browser do not support canvas.
        </canvas>
        </body>
</html>

这是用Jscex实现动画的非常简单的示例,包括Jscex的引入和使用示例。如果你感兴趣,可以访问老赵的博客还有一个是张磊的博客

原创文章,转载请注明: 转载自第十日

本文链接地址: Jscex异步编程库的 使用方法

Tags: , , ,


发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>