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

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

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

提前致谢!

-PAT

【问题讨论】:

    标签: jsfl


    【解决方案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');
          

          【讨论】:

            猜你喜欢
            • 2013-03-17
            • 2010-12-15
            • 2013-10-06
            • 1970-01-01
            • 2012-01-09
            • 2023-03-21
            • 1970-01-01
            • 2021-12-27
            • 2021-08-23
            相关资源
            最近更新 更多