JSFL集合

BitmapBatRename(给库中的图片批量命名)



/*
 * 作用:给库中选中的图片批量命名,起始编号为1,运行时提示输入名称前缀。
*/

var doc = fl.getDocumentDOM();
var uxi = doc.xmlPanel(fl.configURI + "Commands/Rename.xml");
if(uxi.dismiss == "accept")
{
var num = 0;
var items = doc.library.getSelectedItems();
var len = items.length.toString().length;
for(var i = 0; i<items.length; i++)
{
var temp = pad(i+1,len);
items[i].name = uxi.prefixName + temp;
num++;
}
alert("成功处理 " + num + " 个文件");
}

//数字前补零
function pad(num, n)
{
var len = num.toString().length;
while(len < n)
{
num = '0' + num;
len++;
}
return num;
}

第二步:新建一个xml文件,代码如下,保存到Commands目录下,保存名字为“Rename.xml”。

<?xml version="1.0" encoding="utf-8"?>
<dialog buttons="accept,cancel" title="Bat Rename Tool" >
        <label value="Please enter prefixName:"/>
        <textbox id="prefixName"/>
</dialog> 

第三步:新建一个Flash文档,导入一组图片到库里,选中库中的一张、几张或者全部图片,选择“命令-> BitmapBatRename”,在弹出的对话框里输入一个想要的名字,然后点击确定,系统操作完成后,会弹出“成功处理n个文件”的对话框。


LinkageClassRename(给库中的图片批量命名)


第一步:新建一个jsfl文件,代码如下,保存到Commands目录下,保存名字为“LinkageClassRename.jsfl”

/*
 * 作用:给库中选中的图片链接类批量命名,起始编号为1,运行时提示输入名称前缀。
*/

var doc = fl.getDocumentDOM();
var uxi = doc.xmlPanel(fl.configURI + "Commands/Rename.xml");
if(uxi.dismiss == "accept")
{
var num = 0;       
var items = doc.library.getSelectedItems();
for(var i = 0; i<items.length; i++)
{
items[i].linkageClassName = uxi.prefixName + (i+1);
num++;
}
alert("成功处理 " + num + " 个文件");
}

批量链接类命名

/*
 *作用:批量链接类命名,只能修改存放在库根目录的文件,类名可由程序修改(自定义)
*/

fl.outputPanel.clear();
var lib=fl.getDocumentDOM().library;//取得库
var libLength=lib.items.length;//库元素的长度
var bitmapArr=new Array();//库里面没有处理的位图
for(var i=0;i<libLength;i++)
{
if((lib.items[i].itemType=="bitmap")&&((lib.items[i].name).indexOf("/")==-1))
{
bitmapArr.push(lib.items[i].name);
}
}
if(bitmapArr.length>0)
{
var num=0;
for(var i=0;i<bitmapArr.length;i++)
{
var name=bitmapArr[i];
var id=name.split(".")[0];

lib.selectItem(name);
lib.setItemProperty('linkageExportForAS', true);
lib.setItemProperty('linkageExportForRS', false);
lib.setItemProperty('linkageExportInFirstFrame', true);
//lib.setItemProperty('linkageClassName', id);//类名与图片名称一样
lib.setItemProperty('linkageClassName', "cut_scenes"+(num+1));//自定义类名
lib.setItemProperty('scalingGrid', false);
num++;
}
alert("成功处理 "+num+" 个文件");
} else {
alert("库中没有需要处理的文件!");
}

输出库中图片



/*
 * 作用:输出库中所有图片文件到桌面(路径请根据自身情况修改)
*/

var doc = fl.getDocumentDOM();
var name = doc.name;
//设定输出路径为flaout
var path = "file:///C:/Users/hp/Desktop/flaout/";
//获取fla文件名,并且去除.fla扩展名
var dir = name.substring(0, name.length-4)
var items = doc.library.items;
path = path + dir;
//在输出路径里创建一个和fla同名的目录
FLfile.createFolder(path);
for (i = 0; i < items.length; i++)
{
 if(items[i].itemType == "bitmap")
 {
  fl.trace("输出文件=>" + path + "/" +items[i].name);
  items[i].allowSmoothing = true;
  items[i].compressionType = "lossless";
  
  //获取当前元件所在目录
  var subpath = path + "/" + items[i].name;
  subpath = subpath.substring(0,subpath.lastIndexOf("/"));
  //创建目录
  FLfile.createFolder(subpath);
  //输出文件
  items[i].exportToFile(path + "/" + items[i].name );
 }
}
alert("输出完毕!");
//alert("输出完毕,关闭文件,请勿保存");
//doc.close(); 


序列图合成MC序列帧


/*
 * 作用:给库中选中的图片(元件)合成到一影片剪辑中的顺序帧。
 * 使用方法:打开一影片剪辑,选择需要的图片(元件),运行本文件。
 * 注意:处理后顺序与库中所选排列顺序一致!

*/
alert("开始处理文件!");
var num = 0;       
var items = fl.getDocumentDOM().library.getSelectedItems();
 
//把库中选择的文件添加至当前位置(打开元件则添加至元件),并分散到图层(图层顺序为倒序)
fl.getDocumentDOM().library.addItemToDocument({x:0, y:0});
fl.getDocumentDOM().distributeToLayers();
 
//顺序复制第0层外的其他图层的第一帧到第0层的对应帧,并删除其他图层
for(var i = 0; i<items.length; i++)
{
fl.getDocumentDOM().getTimeline().setSelectedLayers(1);
fl.getDocumentDOM().getTimeline().setSelectedFrames(0,0);
fl.getDocumentDOM().getTimeline().copyFrames(0);
fl.getDocumentDOM().getTimeline().setSelectedLayers(0);
fl.getDocumentDOM().getTimeline().setSelectedFrames(i,i);
fl.getDocumentDOM().getTimeline().pasteFrames(i);
fl.getDocumentDOM().getTimeline().deleteLayer(1);
num++;

 

//本提示主要作用为缓冲处理,避免系统操作过快导致的无响应

if(num % 20 == 0) alert("已处理 " + num + " 个文件,确认后继续");

}
 
//翻转帧
fl.getDocumentDOM().getTimeline().setSelectedLayers(0);
fl.getDocumentDOM().getTimeline().reverseFrames();
 
alert("成功处理 " + num + " 个文件!");







发布了127 篇原创文章 · 获赞 14 · 访问量 24万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章