利用 jsfl 批量重命名 Flash IDE 库中元件 (依据上级文件夹名)
最近一直在折腾 flash lite 项目, 每次导入从美工那拿来的新素材都很杯具, 因为总是遇到重名元件 (你知道, 在美工那元件名永远都是 Symbol 1, 2, 3... )
为了解决这一问题, 凭记忆找到了一篇 用 jsfl 随机命名 Flash 库中的所有元件 的文章 (来自: 杜增强.COM ), 效果不错, 用法简单 (详见原文).
但是, 但咱做程序员的, 多少都有那么点洁癖, 看着 library 里一堆以随机数命名的元件始终是不舒服.
于是动手改造了一下, 让元件依据父级文件夹来命名, 并添加后缀, 源码如下:
PLAIN TEXT >> JAVASCRIPT:
-
(function()
-
{
-
var tmpdata = {};
-
var folder_cnt = 0, file_cnt = 0;
-
var items = fl.getDocumentDOM().library.items;
-
var prex =
-
{
-
'movie clip': 'mc',
-
'button': 'btn',
-
'graphic': 'gc',
-
'bitmap': 'img',
-
'sound': 'snd',
-
'compiled clip': 'com'
-
};
-
-
for(var i in items)
-
{
-
var obj = items[i];
-
var pathinfo = obj.name.split('/');
-
var realname = pathinfo.pop();
-
var realpath = pathinfo.join('/') || '_G_L_O_B_A_L_';
-
var myfolder = pathinfo.pop() || 'nofolder';
-
var id = tmpdata[realpath] || 1;
-
-
if(obj.itemType !== 'folder')
-
{
-
var pre = prex[obj.itemType] || 'uk';
-
obj.name = myfolder + '_' + id + '_' + pre;
-
tmpdata[realpath] = ++id;
-
file_cnt++;
-
}
-
else
-
{
-
folder_cnt++;
-
}
-
}
-
fl.trace('Rename completed!\n' + folder_cnt + ' folder(s) and ' + file_cnt + ' symbol(s)');
-
})();
保存为 rename.jsfl 文件, 执行 flash 菜单中 Commands -> Run Command... 项, 选择 rename.jsfl 文件打开即可.
