//java文件目录 JAVAPATH = "file:///d|/Wersling WAS Framework/code/javaCodeforUTF/"; //输出的AS文件目录 ASPATH = "file:///d|/Wersling WAS Framework/code/asForRose/"; //---------------获取文件列表------------------------------- //文件列表的编号 arrid = 0; //文件列表 files = new Array(); //文件路径列表 filespath = new Array(); //------------获取文件列表---------- function getFiles(folderURI){ var fileMask = "*.java"; var list = FLfile.listFolder(folderURI); for(i in list){ if(isFile(list[i])){ files[arrid] = list[i]; filespath[arrid] = folderURI; arrid++; }else{ getFiles(folderURI+list[i]+"/"); } } } //-------------判断是否是java文件---------- function isFile(file){ var s = file.indexOf(".java"); if(s == -1){ return false; } return true; } //-----------处理文件---------- function disposefile(Id){ //java文件完整路径 var fileURI = filespath[Id]+files[Id]; //alert(fileURI); var str = FLfile.read(fileURI); //as文件目录 var Path = filespath[Id].replace(JAVAPATH, ASPATH); //as文件名称 var asfileName = files[Id].replace(".java", ".as"); //建立目录 FLfile.createFolder(Path); //写文件 FLfile.write(Path+asfileName,disposeStr(str)); //遍立 if(Id< files.length-1){ disposefile(Id+1); }else{ alert("共生成文件:"+files.length); } } //-----------处理文件---------- Package = ""; function disposeStr(s){ var arr = s.split("\n"); for(i in arr){ if(arr[i].indexOf("//") != 0){ //处理package if(Contain(arr[i],"package")){ Package = getPackage(arr[i]); arr[i] = "//"+arr[i]; } //类、接口 if(( Contain(arr[i],"public") || Contain(arr[i],"private") )&& !Contain(arr[i],"(")){ arr[i] = getClass(arr[i]); } //方法 if(( Contain(arr[i],"public") || Contain(arr[i],"private") )&& Contain(arr[i],"(")){ arr[i] = getFunction(arr[i]); } } } return arr.join("\n"); } //获取Package function getPackage(s){ re = /package /g; // 创建正则表达式模式。 r = s.replace(re, ""); r = r.replace(/;/g, "."); return r } //修改类 function getClass(s){ s = s.replace("public ", ""); s = s.replace("private ", ""); s = s.replace("final ", ""); s = s.replace("abstract ", ""); var r = ccc(s.split(" ")); r[1] = Package+r[1]; r[1]= r[1].replace(/\n/g, ".");//>>>>>>>>>>>>>>>> r[1]= r[1].replace("\r", ""); return r.join(" "); } //修改方法 function getFunction(s){ var sar = s.slice(s.indexOf("(")+1,s.indexOf(")")); if(sar != ""){ s = s.replace(sar, "") //修改属性 sar = getAgr(sar); } var r = ccc(s.split(" ")); var _public = ""; var _ptmer = ""; var _static = ""; var _function = ""; for (var t = 0; t < r.length; t++) { if( Contain(r[t],"public") || Contain(r[t],"private") || Contain(r[t],"protected")){ _public = r[t]; _ptmer = r[t+1]; } if(Contain(r[t],"static")){ _static = r[t]; _ptmer = r[t+1]; } if(Contain(r[t],"(")){ _function = r[t]; } } if(_ptmer == ""){ _ptmer = "Void"; } ip = "" if(Contain(_function,";")){ _function = _function.replace(";", "") ip = ";"; } if(_static != ""){ ww = _public+" "+_static+" function "+ _function+" : "+_ptmer+ip; }else{ ww = _public+" function "+ _function+" : "+_ptmer+ip; } ww = ww.split("("); ww = ww[0] + "(" + sar + ww[1]; ww = ww.replace("\r", ""); return ww; } //修改参数 function getAgr(s){ var r = s.split(", "); for(i in r){ var e = ccc(r[i].split(" ")); var w = e[1]+ ":" + e[0]; r[i] = w; } return r.join(","); } function ccc(aa){ for(u in aa){ if (aa[u] == "" || aa[u] ==null){ aa.splice(u,1); delete aa[u]; } } return aa; } function Contain(s,s1){ if(s && s1){ if(s.indexOf(s1) != -1){ return true; } } return false; } getFiles(JAVAPATH); disposefile(0);