JSFL 删除未使用的库项目

Posted

技术标签:

【中文标题】JSFL 删除未使用的库项目【英文标题】:JSFL Delete Unused Library Items 【发布时间】:2012-09-05 20:40:28 【问题描述】:

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

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

提前致谢!

-PAT

【问题讨论】:

【参考方案1】:

也许为时已晚,但这对我有用:

 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);
       
   

【讨论】:

【参考方案2】:

我认为你是对的,删除未使用的项目是不可用的。 过去,还有一个 select and compact 选项不再可用。

所以我能找到的最佳解决方案是创建一个新文档并将舞台上的所有内容复制粘贴到新文档中。 它并不理想,不适用于所有项目,但它适用于某些项目。 你可以在这里找到代码: in this AS3 code blog

希望对你有帮助。

【讨论】:

根据常见问题解答,您需要披露您与所提供链接的关联。【参考方案3】:

为了跟进之前的建议,有时您会发现,当您删除一些未使用的内容时,另一项内容就会变得未使用。我写了一些代码循环,直到最终删除所有未使用的内容。如果您不需要递归方面,则可以删除 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);
       

【讨论】:

【参考方案4】:

此link 是管理和维护库的教程,使用它您可以轻松删除未使用的项目。只需按照教程中提到的创建 JFSL 文件的步骤进行操作

【讨论】:

感谢 NIlesh 的回复。我通读了本教程,并没有找到关于使用 JSFL 删除未使用项目的任何内容。然而,在第一段中,作者提到这是一个好的合作者的品质。也就是说,一个“清楚地命名图层和库项目,删除未使用的材料,保持文件夹井井有条”的人老鼠!我真的很想要这个。为我工作!我开始相信通过 JSFL 删除未使用的项目是 Adob​​e 忽略或决定反对的功能。再次感谢您的回复! -帕特【参考方案5】:

这里提出并回答了这个问题:

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 中可用。

【讨论】:

【参考方案6】:

这个简单的脚本将在 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');

【讨论】:

以上是关于JSFL 删除未使用的库项目的主要内容,如果未能解决你的问题,请参考以下文章

go import自动删除未引用的库

Cocoapod:为啥 Xcode 构建过程试图找到已经从我的项目中删除的库

卸载程序不会将复制的库删除到 VS2010 安装程序项目中的系统文件夹。

关于mysql 删除数据后(.MYD,MYI)物理空间未释放

从 Android Studio 项目中删除所有未使用的类、方法

如何从 Eclipse 中的 Maven 项目中删除未使用的依赖项? [复制]