
以前以为jsfl不能控制FLA的场景,今天需要用到这个功能,然后用批量导出,又仔细看了下帮助,发现是可以的。虽然timeline指向当前时间轴可以是当前场景、正在编辑的当前元件或当前屏幕。但是当打开FLA时,它指的就是当前场景,使用timelines.length就是场景的个数,这样,我们就可以把所有fla文件的最后一个场景调整成第一个场景,然后导出
JSFL Code
var doc = fl.openDocument(p_fileURI); // 将最后一个场景移到最前面 var sceneNum = doc.timelines.length; doc.reorderScene(sceneNum - 1,0); // 不保存 //doc.save(); doc.publish();
JSFL Code
var flaList = []; var len = 0; var right = 0; var error = 0; var folderURI = fl.browseForFolderURL("选择目标文件夹."); var cDate = new Date(); // 日志文件名称 var outputName = [cDate.getFullYear(),cDate.getMonth() + 1, cDate.getDate(),cDate.getHours(),cDate.getMinutes(),cDate.getSeconds(),"log.txt"].join("_"); // 文件总数 var count = 0; if(folderURI != null) { outputName = folderURI +"/" + outputName; compileFolder(folderURI); fl.trace("本次共编译[" + count + "]个文件,成功[" + right + "]个,失败[" + error + "]个\n"); fl.outputPanel.save(outputName,true); fl.outputPanel.clear(); fl.trace("请查看编译日志文件" + outputName); fl.openScript(outputName); } function compileFolder(folder) { // 列举文件夹下所有文件 var folderContents = FLfile.listFolder(folder,"files"); // 获取其中的fla文件 getFlaList(folderContents); if(flaList.length == 0) { //fl.trace("没有要编译的Fla文件\n"); } else { var tLen = flaList.length; var swfName = "" fl.outputPanel.clear(); for(var i = 0; i < tLen; i++) { compile(folder + "/" + flaList[i]); swfName = flaList[i].substr(0,flaList[i].lastIndexOf(".")+1)+"swf"; if (!FLfile.exists(folder +"/"+ swfName)) { fl.trace(">> ERROR: File did not compile correctly: "+ swfName); error ++; continue; } else { right ++; } } count += tLen; } var subFolders = FLfile.listFolder(folder,"directories"); if(subFolders.length > 0) { for(var i = 0; i < subFolders.length; i++) { compileFolder(folder + "/" + subFolders[i]) } } } function compile(p_fileURI) { var doc = fl.openDocument(p_fileURI); doc.publish(); fl.trace(">> 以上是编译[" + p_fileURI + "]的输出信息"); fl.outputPanel.save(outputName,true); fl.outputPanel.clear(); fl.closeDocument(doc,false); // close fla without saving } function getFlaList(listArray) { var len = listArray.length; flaList = []; var str = ""; for(var i = 0; i < len; i++) { str = listArray[i]; if(str.indexOf(".") == -1) { //无后缀文件 continue; } var tmp = str.length; if((str.substr(tmp - 4).toLowerCase()) == ".fla") { flaList.push(str); } } }