如何快速修改Adobe Animate(以前称为 Flash) 库中的原件名称

动画设计师在Adobe Animate软件制作玩动画后往往会直接从potoshop粘贴过来图片,或者给元件起名字的时候起中文名称,这样在生成js文件中会产生大量的中文名字。这些中文名字有时候放到服务器上就会产生乱码,那么在createjs中引用的时候就会报错,找不到对应的动画或者元件。如果手动去修改往往会有几十设置几百个名字。所以为了节约时间可以用代码来统一修改
在这里插入图片描述
2. 用一个文本编辑新建一个文件(我这里用的是sublime),然后保存为rename.jsfl(当然名字你可以随便起,最好是英文,但是文件格式必须是jsfl)

  1. 在编辑器编辑代码,代码如下
// 获取当前文档对象
var doc = fl.getDocumentDOM();

// 获取库中的所有项目
var libraryItems = doc.library.items;

// 定义需要替换的前缀和新的前缀
var prefixMap = {
    "位图 ": "flywt_",    // 原来是 "位图 ",替换成 "flywt_"
    "对_": "r_"           // 原来是 "对_",替换成 "r_"
};

// 遍历库中的所有项目
for (var i = 0; i < libraryItems.length; i++) {
    var item = libraryItems[i];
    
    // 检查项目是否为合适的类型,例如 MovieClip 或 Bitmap
    if (item.itemType === "MovieClip" || item.itemType === "Bitmap") {
        
        // 遍历 prefixMap 替换前缀
        for (var oldPrefix in prefixMap) {
            if (item.name.indexOf(oldPrefix) === 0) {
                // 将名称前缀替换为新的前缀
                var newName = prefixMap[oldPrefix] + item.name.substring(oldPrefix.length);
                item.name = newName;
                fl.trace("重命名: " + item.name);  // 输出重命名日志
                break;  // 一旦匹配替换前缀,跳出内层循环
            }
        }
    }
}

// 输出完成信息
fl.trace("所有匹配项已重命名完成!");

这段脚本的作用是遍历 Adobe Animate (以前称为 Flash) 中当前文档的库(Library)项目,检查并替换符合条件的项目名称的前缀。使用了 prefixMap 来映射需要替换的前缀和新的前缀,同时限定了要处理的项目类型为 MovieClipBitmap

代码概述

  1. 获取当前文档对象

    var doc = fl.getDocumentDOM();
    

    fl.getDocumentDOM() 用于获取当前打开的文档的 DOM 对象。通过该对象,你可以操作文档中的所有元素,包括库项目、时间轴元素等。

  2. 获取库中的所有项目

    var libraryItems = doc.library.items;
    

    doc.library.items 返回当前文档中库的所有项目的数组。你可以通过它来访问库中的所有资源,如影片剪辑、按钮、位图等。

  3. 定义前缀映射 (prefixMap)

    var prefixMap = {
        "位图 ": "flywt_",    // 将 "位图 " 替换成 "flywt_"
        "对_": "r_"           // 将 "对_" 替换成 "r_"
    };
    

    使用一个对象 prefixMap 存储多个前缀替换规则。每个键(如 "位图 ")代表需要匹配的旧前缀,值(如 "flywt_")是替换为的新前缀。

  4. 遍历库中的项目

    for (var i = 0; i < libraryItems.length; i++) {
        var item = libraryItems[i];
    

    使用 for 循环遍历库中的所有项目(libraryItems 数组)。item 代表当前处理的库项目。

  5. 检查项目类型

    if (item.itemType === "MovieClip" || item.itemType === "Bitmap") {
    

    如果库项目是 MovieClipBitmap 类型,才会进行后续的重命名操作。通过 item.itemType 获取项目的类型,确保只处理符合条件的类型。

  6. 替换前缀

    for (var oldPrefix in prefixMap) {
        if (item.name.indexOf(oldPrefix) === 0) {
            var newName = prefixMap[oldPrefix] + item.name.substring(oldPrefix.length);
            item.name = newName;
            fl.trace("重命名: " + item.name);
            break;
        }
    }
    
    • 遍历 prefixMap 中的所有旧前缀。
    • 使用 item.name.indexOf(oldPrefix) === 0 检查当前项目名称是否以某个前缀开始。
    • 如果是,将该前缀替换为对应的新前缀。通过 item.name.substring(oldPrefix.length) 去掉旧前缀部分,并拼接上新的前缀。
    • fl.trace() 用于输出重命名日志,显示每个重命名的项目名称。
    • break 语句用于在匹配并重命名后跳出内部循环,避免重复替换。
  7. 输出完成信息

    fl.trace("所有匹配项已重命名完成!");
    

    当所有项目都处理完成后,输出 "所有匹配项已重命名完成!" 提示操作完成。

可能的扩展

  1. 支持更多前缀映射
    如果你需要支持更多的前缀替换,可以直接在 prefixMap 中添加新的前缀和对应的替换值,例如:

    var prefixMap = {
        "位图 ": "flywt_",
        "对_": "r_",
        "按钮_": "btn_"
    };
    
  2. 处理更多项目类型
    目前脚本只处理了 MovieClipBitmap 类型。如果需要处理其他类型的库项目,可以扩展类型检查:

    if (item.itemType === "MovieClip" || item.itemType === "Bitmap" || item.itemType === "Button") {
    
  3. 避免重命名冲突
    如果有需要避免重复命名冲突(例如两个项目的名称本来就相同),可以在重命名前检查是否已存在相同名称的项目。如果需要,做一些名称冲突处理。

运行环境

此脚本是在 Adobe Animate(Flash)中运行的 JSFL 脚本,JSFL(JavaScript Flash)是 Adobe Animate 的脚本语言,用于自动化和自定义 Flash 文档的操作。

执行

  1. 打开Adobe Animate
  2. 菜单栏找到命令=》运行命令
  3. 在软件的输出信息栏看到“所有匹配项已重命名完成!”成功
  4. 在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值