工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2475|回复: 14

[as]貌似没有用的一个工具:去注释

[复制链接]
发表于 2006-10-19 16:57 | 显示全部楼层 |阅读模式
注意:有个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 编辑 ]
 楼主| 发表于 2006-10-19 17:00 | 显示全部楼层
一次一位同学把从书上打上来的AS代码发给我

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

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

使用道具 举报

发表于 2006-10-19 17:22 | 显示全部楼层
对AS不懂,了没认真看完。觉得不错,支持!

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

使用道具 举报

 楼主| 发表于 2006-10-19 17:32 | 显示全部楼层
没对引号做判断
回复

使用道具 举报

 楼主| 发表于 2006-10-19 17:34 | 显示全部楼层
AS2不支持正则。。。

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

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

使用道具 举报

 楼主| 发表于 2006-10-19 17:54 | 显示全部楼层
PPT提示的对,可以做成代码着色,修改下引号BUG,加些着色语句应该可以实现。。。

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

使用道具 举报

发表于 2006-10-22 16:09 | 显示全部楼层
escape
回复

使用道具 举报

 楼主| 发表于 2006-10-22 16:10 | 显示全部楼层
原帖由 黯然销魂 于 2006-10-22 16:09 发表
escape


escape?
回复

使用道具 举报

发表于 2006-10-22 16:10 | 显示全部楼层
其实用SciTE可以写ActionScript写得很舒服.
回复

使用道具 举报

 楼主| 发表于 2006-10-22 16:12 | 显示全部楼层
Flex Builder好像更好用点。。。。
回复

使用道具 举报

发表于 2006-10-22 16:12 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2006-10-22 16:13 | 显示全部楼层
其实用过的了。。。
回复

使用道具 举报

发表于 2006-10-22 16:15 | 显示全部楼层
ok. in fact I prefer UltraEdit.
回复

使用道具 举报

 楼主| 发表于 2006-10-22 16:18 | 显示全部楼层
工具罢了。。。
哪个顺手用哪个。。。呵呵,不过UE可能不如Flex Builder功能强大

BTW  楼上还写AS?
回复

使用道具 举报

发表于 2006-10-22 17:03 | 显示全部楼层
...我没碰ActionScript好多年...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-15 10:05

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表