1、 JSFL api 下载地址: http://help.adobe.com/zh_CN/flash/cs/extend/flash_cs5_extending.pdf
2、 2个实例:
1> 转自:http://bbs.9ria.com/thread-26288-1-1.html
生成游戏素材包
1、选择素材路径 路径里的文件夹结构和生成的库文件夹结构一致,库中项目及其导出类的名称和文件名(不包括后缀)一致
2、选择生成swf文件的路径 程序会生成swf和fla文件
3、之后就是自动生成过程了
fl.outputPanel.clear(); var dom = fl.createDocument(); var resourcePath=fl.browseForFolderURL( "请选择素材路径:" ); var swfPath=fl.browseForFolderURL( "请选择生成swf文件的路径:" ); var lib=dom.library; var bitmapFolder= "图素" ; var mcFolder= "导出类" ; analyseFolder(resourcePath, "" ); dom.exportSWF(swfPath+ "/resourceLib.swf" , true ); fl.saveDocument(dom,swfPath+ "/resourceLib.fla" ); dom.close( false ); //递归处理每个文件夹 function analyseFolder(folderPath,libFolder) { var fileList=FLfile.listFolder(folderPath, "files" ); for ( var i=0;i<fileList.length;i++) { var fileName=fileList[i]; var ind=fileName.indexOf( "." ); //如果没有后缀或后缀不正确则略过 if (ind<=0||ind==(fileName.length-1)) { continue ; } //后缀 var ext=fileName.substr(ind+1,fileName.length-ind); ext=ext.toLowerCase(); //不是图片则略过 if (ext!= "bmp" &&ext!= "gif" &&ext!= "jpg" &&ext!= "jpeg" &&ext!= "png" ) { continue ; } //不要后缀的文件名 shortName=fileName.substr(0,ind); var filePath=folderPath+ "/" +fileName; //fl.trace(filePath); //导入图片 dom.importFile(filePath, true ); //选择项 lib.selectItem(fileName); //放到舞台上 lib.addItemToDocument({x:0,y:0}); dom.selectAll(); dom.convertToSymbol( "movie clip" ,shortName, "top left" ); lib.selectItem(shortName); lib.setItemProperty( "linkageImportForRS" , false ); lib.setItemProperty( "linkageExportForAS" , true ); lib.setItemProperty( "linkageExportForRS" , false ); lib.setItemProperty( "linkageExportInFirstFrame" , true ); lib.setItemProperty( "linkageIdentifier" ,shortName); dom.selectAll(); dom.deleteSelection(); var f=libFolder; lib.newFolder(bitmapFolder+f); lib.newFolder(mcFolder+f); lib.moveToFolder(bitmapFolder+f,fileName); lib.moveToFolder(mcFolder+f,shortName); } //子文件夹 var folderList=FLfile.listFolder(folderPath, "directories" ); for ( var j=0;j<folderList.length;j++) { analyseFolder(folderPath+ "/" +folderList[j],libFolder+ "/" +folderList[j]); } } |
2>转自: http://www.daylyn.org/post/101.html
使用JSFL自动生成元件AS3代码声明和赋值语句
var selectedItems = fl.getDocumentDOM().selection; //获取文档所选对象数组 var resultDesc = "" ; //结果声明语句部分 var resultAssignment = "" ; //结果赋值语句部分 var libitem; //库元件 //循环选中的库元件 var selItems = fl.getDocumentDOM().library.getSelectedItems(); var childItem = selItems[0]; fl.outputPanel.trace(childItem.name); fl.outputPanel.trace(childItem.linkageExportForAS); //linkageBaseClass.toString().split(".").pop()); fl.outputPanel.trace(childItem.linkageClassName); fl.outputPanel.trace(childItem.linkageBaseClass); //默认基类 则是空串 resultDesc = "private var _ui:" + "Sprite" ; for ( var i = 0 ; i < selectedItems.length; i ++) { var item = selectedItems[i]; if (item.libraryItem) { libitem = item.libraryItem; if (isComponent(libitem.name)) { resultDesc += "private var _" +item.name+ ":" +getClassOfComponent(item.libraryItem.name)+ ";\n" ; //resultAssignment += "_" + item.name + " = " + "_ui[" + item.name + "]"; //也可以用getChildByName方法 } else if (libitem.linkageBaseClass) { resultDesc += "private var _" +item.name+ ":" +(libitem.linkageBaseClass.toString().split( "." ).pop())+ ";\n" ; //resultAssignment += "_" + item.name + " = " + "_ui[" + item.name + "]"; } else if (item.name) { resultDesc += "private var _" +item.name+ ":MovieClip;\n" ; //resultAssignment += "_" + item.name + " = " + "_ui[" + item.name + "]"; } resultAssignment += "_" + item.name + " = " + "_ui[\"" + item.name + "\"]" + ";\n" ; } else if (item.elementType == "text" &&item.name) { resultDesc += "private var _" +item.name+ ":TextField;\n" ; resultAssignment += "_" + item.name + " = " + "_ui[\"" + item.name + "\"]" + ";\n" ; } } /* 是否为组件 */ function isComponent(libItemName) { fl.outputPanel.trace(libItemName); return libItemName.match(/Components\ //i); } /* 获取组件类名 */ function getClassOfComponent(libItemName) { return libItemName.match(/Components\/([a-zA-Z0-9_-]*)/i)[1]; } fl.outputPanel.trace(resultDesc); //打印结果 fl.outputPanel.trace(resultAssignment); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
2010-11-05 VC2008编译STLPort
2010-11-05 boost::asio 的同、异步方式
2010-11-05 以boost::function和boost:bind取代虚函数
2010-11-05 Boost.Asio和ACE之间关于Socket编程的比较
2010-11-05 知识框架
2010-11-05 ACE的Socket