是否存在用于删除flash中未使用的库项目的JFSL代码?
我知道您可以从Flash库菜单中选择“未使用的项目”,然后只需点击删除键即可。这很好,但我想自动化这个过程,因为我必须为几个项目重复这个过程。
提前致谢!
-PAT
答案 0 :(得分:2)
也许为时已晚,但这对我有用:
var dom = fl.getDocumentDOM();
var items = dom.library.items;
var lib= dom.library;
//Look for Assets folder and remove
for(var i=0;i<items.length;i++)
{
if (items[i].name.indexOf("Assets") >= 0)
{
fl.trace(items[i].name+ " - target item found: Deleted");
lib.deleteItem(items[i].name);
}
}
您还可以根据类型删除项目:
for(var i=0;i<items.length;i++)
{
if (items[i].itemType=="graphic")
{
lib.deleteItem(items[i].name);
}
}
答案 1 :(得分:1)
我认为你是对的,删除未使用的物品是不可用的。 在过去,还有一个不再可用的精选和紧凑选项。
因此,我能找到的最佳解决方案是创建一个新文档,并将舞台上的所有内容复制粘贴到新文档中。 它不理想,不适用于一切,但它适用于一些项目。 你可以在这里找到代码: in this AS3 code blog
希望它有所帮助。
答案 2 :(得分:0)
这个link是管理和维护库的教程,使用它可以轻松删除未使用的项目。只需按照教程
中提到的创建JFSL文件的步骤操作即可答案 3 :(得分:0)
这个问题在这里得到了回答:
Checking 'Use Count' for library items with JSFL
此后出现了一些更新。 Flash Professional CC发布了,终于有了一个新的JSAPI。信息位于:
http://help.adobe.com/en_US/flash/cs/extend/WS849c47c2a95c1007-6e6f2af913b0a89ffd8-8000.html
注意 - library.unusedItems仅在Flash Professional CC中可用。
答案 4 :(得分:0)
这个简单的脚本将在Flash Pro CC中完成工作
var unusedArr = fl.getDocumentDOM().library.unusedItems;
for(var i=0;i<unusedArr.length;i++) {
fl.trace('Item removed: '+unusedArr[i].name);
fl.getDocumentDOM().library.deleteItem(unusedArr[i].name);
}
fl.trace(unusedArr.length+' Items removed');
答案 5 :(得分:0)
要跟进之前的建议,有时您会发现当您删除未使用的内容时,会发现另一件事未被使用。我编写了一些循环代码,直到最后删除所有未使用的代码。如果您不需要递归方面,则可以删除while循环。
var lib = fl.getDocumentDOM().library;
while(lib.unusedItems.length > 0)
{
fl.trace("Deleting... " + lib.unusedItems.length + " items");
var unusedArr = lib.unusedItems;
for(var i=0;i<unusedArr.length;i++)
{
var unused = unusedArr[i];
fl.trace(" deleting " + unused.name);
lib.deleteItem(unused.name);
}
}