【破事水】SCRTACH扩展模块

发表在    编程少年官方部落 01-23 19:28:03

0 2174 0
/*********************************************************************************
© ClipCC开发团队
FileName: Eval.js
Author: hdz2007
Version: v1.0
Date: 180123
Description: 调用 js 的 Eval
**********************************************************************************/
var evalRes = '';  // eval 函数得到的结果

// 手工实现 startwith
String.prototype.startWith=function(str) {
	if(str==null||str==""||this.length==0||str.length>this.length)
		return false;
	if(this.substr(0,str.length)==str)
		return true;
	else
		return false;
	return true;
}

////////////////////////////////////////////////////////////////////////////////////////////
var http = require('http');
http.createServer(function(req, res) {
	if(req.url.startWith('/setEvalString')) {
		evalRes = req.url.split('/')[3];
		evalRes = decodeURIComponent(evalRes.toString());
		//console.log(evalRes);
		evalRes = eval(evalRes);
	}
	
	else if(req.url == '/poll') {
		res.write('getEvalResult '+evalRes);
	}
	
	res.end();

}).listen(123456);

//console.log('localhost:58394  Eval 监听中...');

// 捕获全局异常
process.on('uncaughtException', function (err) {
    console.error('An uncaught error occurred!');
    console.error(err.stack);
});

啊,上面是Eavl核心(Eavl.js),这是一个可以在sc计算表达式的模块(不是自定义)

下面是Eavl.s2e文件

{ 
	"extensionName": "表达式运算-ClipCC特别版",
	"extensionPort": 123456,
	"blockSpecs": [
		["w", "计算 %s", "setEvalString"],
		["r", "返回结果", "getEvalResult"],
	]
}

找个文件夹新建这两个文件写进去数据保存,然后安装node.js,新建bat文件:

run.bat

node ./"Eval.js"

启动后不要关闭黑窗口

之后百度Scratch载入扩展模块,导入即可


(部分内容来自科技传播坊 李泽,侵删)

登录或注册后发布评论
author avatar

hehe1234

英勇黄铜Ⅳ 139荣誉值

1

0

0

hehe1234的其他帖子