javascript语法:https://www.w3school.com.cn/js/js_array_methods.asp
flash中的api:https://help.adobe.com/archive/zh_CN/flash/cs5/flash_cs5_extending.pdf
// fl 或者 flash 表示 flash对象
// fl.scriptURI 只读;一个字符串,它表示当前运行的 JSFL 脚本的路径,形式为 file:/// URI。
var sourceFolder=fl.scriptURI;
// 跟 compileAll.jsfl 同目录的 fla 文件夹
sourceFolder = sourceFolder.substr(0, sourceFolder.length - "compileAll.jsfl".length) + "fla"
var fileMask="*.fla";
var libContorl = "LibControls.fla";
// FLfile 对象 操作文件
// FLfile.listFolder(folderURI文件夹路径可以有* ?通配符 [, filesOrDirectories返回文件或者目录])
var list=FLfile.listFolder(sourceFolder + "/" + fileMask, "files");
if(!list)
{
//奇怪的规律, 有的时候相对路径可以找到,有的时候找不到.
//找不到的之后手动找绝对路径
// fl.browseForFolderURL() 显示 “ 浏览文件夹 ” 对话框,允许用户选择文件夹
sourceFolder=fl.browseForFolderURL();
list=FLfile.listFolder(sourceFolder +'/' + fileMask, "files");
}
function hasLibCAndPicL()
{
var hasLib = false;
list.forEach(function(e){
if(e == libContorl)
{
hasLib = true;
}
})
return hasLib;
}
function exchangIndex()
{
// splice 和 unshift javascript的数组的操作api 删除或者增加
list.splice(list.indexOf(libContorl), 1);
list.unshift(libContorl);
}
if(hasLibCAndPicL())
{
exchangIndex();
var doc;
// compilerErrors 对象表示 “ 编译器错误 ” 面板,它是 flash 对象 (fl) 的一个属性 可以通过 fl.compilerErrors 访问
var obj = fl.compilerErrors
for(var i=0; i<list.length; ++i)
{
// 在新的 Flash 文档窗口中打开一个 Flash (FLA) 文档供编辑,并使其获得焦点。
var doc=fl.openDocument(sourceFolder+ "/" +list[i]);
// 按照活动的发布设置 ( “ 文件 ”>“ 发布设置 ”)发布文档;等效于选择 “ 文件 ”>“ 发布 ”。
doc.publish();
// 把 “ 编译器错误 ” 面板里的错误输出到文件中
obj.save("file:///./compilerErrors/"+list[i]+"Errors.log");
doc.close();
}
fl.quit();
}