[as]貌似没有用的一个工具:去注释
注意:有个BUG ,对引号内的注释会误判。。。建一个 输入文本框命名为 textPlate一个button命名为 btOmitComment
帧代码:
var status=0;
btOmitComment.onRelease = btHandle;
function btHandle()
{
if (status == 0) {
omitComment();
//去注释
status = 1;
} else {
revert();
//还原,好像没什么必要,没做这个
status = 0;
}
}
//去注释
function omitComment()
{
var searchStatus = 0; //注释状态标记 1 表示已找到一个"//" 2表示找到"/*" 0表示非注释状态
var searchStatus2=0 //注释字符查找标记 1 表示第一个"/" 2表示第一个"*"0表示没有发现
btOmitComment.enabled=false;
var ret:String = "";
var t = textPlate.text;
var len = t.length;
for (var i = 0; i<len; i++) {
//开始拆分输入的字符
splice = t.substr(i, 1);
if(searchStatus==1){
if(splice!="\r")continue;
else searchStatus=0;
}
if (splice == "/") {
trace("found /")
switch (searchStatus2) {
case 0 ://如果前一个字符不为 / 也不为 *
trace("find only one /");
searchStatus2 = 1;
continue;
//break;
case 1 ://如果前一个字符为 /进入行注释状态
trace("find // begin to comment status");
searchStatus = 1;//行注释状态
searchStatus2 = 0;
continue;
break;
case 2://如果前一个字符为 *
if(searchStatus==2){
//如果已有一个/*开头 进入代码状态
trace("find */");
searchStatus2=0;
searchStatus = 0;
continue;
}break;
default :
break;
}
}
if(splice=="*")
{
trace("found *");
switch(searchStatus2)
{
case 0:if(searchStatus==2){searchStatus2=2;continue;}break;
case 1://如果前一个字符为 / 进入注释状态
if(searchStatus==0){searchStatus2=0;searchStatus=2;continue}break;
//case 2:if(searchStatus>0)continue;break;
default:break;
}
}
if(searchStatus==0){
if(searchStatus2==0){ret+=splice;}
if(searchStatus2==1){ret+="/";ret+=splice;searchStatus2=0;}
if(searchStatus2==2){ret+="*";ret+=splice;searchStatus2=0;}
}
}//结束拆分
if(searchStatus2==1)ret+="/";
textPlate.text=ret;
btOmitComment.enabled=true;
}
[ 本帖最后由 iptton 于 2006-10-19 18:05 编辑 ] 一次一位同学把从书上打上来的AS代码发给我
几乎每一句都有注释(很佩服她全打上,虽然错漏不少。。。- -||)
但注释太多影响阅读。。。 对AS不懂,了没认真看完。觉得不错,支持!
疑问及建议:
不知道在引号里的"//"会不会给错判?
按照这种思想,是不是该写个给源码着色的程序呢(像VC之类的编辑器)?
如果用正则表达式的话,可以变得更简洁。 没对引号做判断 AS2不支持正则。。。
后悔当初学数字逻辑里十点只学会九点
否则可以先写好状态机再编码。。。。 PPT提示的对,可以做成代码着色,修改下引号BUG,加些着色语句应该可以实现。。。
学过 JS或 AS 的可以试试。。。。 escape 原帖由 黯然销魂 于 2006-10-22 16:09 发表
escape
escape? 其实用SciTE可以写ActionScript写得很舒服. Flex Builder好像更好用点。。。。 for your reference...
http://pic.uying.com/monkey/blog/showarticle.asp?blogID=62 其实用过的了。。。 ok. in fact I prefer UltraEdit. 工具罢了。。。
哪个顺手用哪个。。。呵呵,不过UE可能不如Flex Builder功能强大
BTW 楼上还写AS? ...我没碰ActionScript好多年...
页:
[1]