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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章