JSFL删除未使用的库项目

时间:2012-09-12 19:10:59

标签: jsfl

是否存在用于删除flash中未使用的库项目的JFSL代码?

我知道您可以从Flash库菜单中选择“未使用的项目”,然后只需点击删除键即可。这很好,但我想自动化这个过程,因为我必须为几个项目重复这个过程。

提前致谢!

-PAT

6 个答案:

答案 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);
    }   
}