使用jsfl批量重命名flash库项目

Ske*_*mes 4 flash rename jsfl

版本flash cs5

好的,所以我知道重命名所有选定的库项目的通用代码

var items = fl.getDocumentDOM().library.getSelectedItems();
for (var i=0; i<items.length; i++){
var item = items[i];
item.name = "ABC_"+item.name;
}
Run Code Online (Sandbox Code Playgroud)

但如果库项目在文件夹中,这还不够好...因为item.name返回完整路径,但item.name设置名称.oO正如其他人在此指出的那样,http://forums.adobe.com/message/107718

  • 所以当我尝试将Level1重命名为ABC_Level1时
  • 如果Level1的文件夹路径是LIBRARY/FolderA/FolderB/Level1
  • 我得到了这个
  • ABC_FolderA-FolderB中-1级

我可能会编写某种类似的字符串解析器,

item.name ="ABC _"+ item.name.substr(item.name.lastIndexOf(" - "),99)

但这真的很难看,如果库项目已经包含" - ",那就行不通了.例如"Level-1"

所以我想我希望的是一种不同的方式来访问的名称,返回只是名称和不路径

Jus*_*ney 8

这很棘手,因为当你得到名字时它就是完整的路径,但是当你设置名称时,它只是项目名称(而不是路径).在连接之前,您必须分隔名称和文件夹.因此,没有"干净"的方法来做到这一点,尽管编写一个函数可能会使它更具可读性:

function getItemName(item) {
   return item.name.split("/").pop();
}
Run Code Online (Sandbox Code Playgroud)

然后设置项目的名称:

 item.name = "ABC_" + getItemName(item);
Run Code Online (Sandbox Code Playgroud)