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);
浙公网安备 33010602011771号