iptton 发表于 2006-10-19 16:57

[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 编辑 ]

iptton 发表于 2006-10-19 17:00

一次一位同学把从书上打上来的AS代码发给我

几乎每一句都有注释(很佩服她全打上,虽然错漏不少。。。- -||)

但注释太多影响阅读。。。

powerwind 发表于 2006-10-19 17:22

对AS不懂,了没认真看完。觉得不错,支持!

疑问及建议:
不知道在引号里的"//"会不会给错判?
按照这种思想,是不是该写个给源码着色的程序呢(像VC之类的编辑器)?
如果用正则表达式的话,可以变得更简洁。

iptton 发表于 2006-10-19 17:32

没对引号做判断

iptton 发表于 2006-10-19 17:34

AS2不支持正则。。。

后悔当初学数字逻辑里十点只学会九点

否则可以先写好状态机再编码。。。。

iptton 发表于 2006-10-19 17:54

PPT提示的对,可以做成代码着色,修改下引号BUG,加些着色语句应该可以实现。。。

学过 JS或 AS 的可以试试。。。。

黯然销魂 发表于 2006-10-22 16:09

escape

iptton 发表于 2006-10-22 16:10

原帖由 黯然销魂 于 2006-10-22 16:09 发表
escape

escape?

黯然销魂 发表于 2006-10-22 16:10

其实用SciTE可以写ActionScript写得很舒服.

iptton 发表于 2006-10-22 16:12

Flex Builder好像更好用点。。。。

黯然销魂 发表于 2006-10-22 16:12

for your reference...
http://pic.uying.com/monkey/blog/showarticle.asp?blogID=62

iptton 发表于 2006-10-22 16:13

其实用过的了。。。

黯然销魂 发表于 2006-10-22 16:15

ok. in fact I prefer UltraEdit.

iptton 发表于 2006-10-22 16:18

工具罢了。。。
哪个顺手用哪个。。。呵呵,不过UE可能不如Flex Builder功能强大

BTW  楼上还写AS?

黯然销魂 发表于 2006-10-22 17:03

...我没碰ActionScript好多年...
页: [1]
查看完整版本: [as]貌似没有用的一个工具:去注释