介绍

许多可以循环的素材,比如gif,本身导入是不能循环的,很蛋疼。

如果要更改的话,一般需要右键素材 - 解释素材 - 主要

然后在其他选项里更改循环次数

更改前与更改后(所有合成内的该项目会同时更改,所以不用担心重新替换之类)

使用方法

在项目面板选择素材文件(可多选),单击按钮即可

这里有默认文件类型 ,以及默认循环次数,可以自行更改

tips:可以在项目面板搜索筛选(比如输入gif,mp4)

源码

/**
 * 功能:在项目面板选择一个或多个素材文件,可以批量更改循环次数,比如gif文件等
 * 源码:https://www.yuelili.com/?p=17991
 * 版本:1.0
 */

var panelGlobal = this;
var palette = (function () {

    // 用户自定义区
    loop_list = [".mov", ".gif"]
    loop_times = 100


    // UI 界面 可以不管
    var palette = (panelGlobal instanceof Panel) ? panelGlobal : new Window("palette");
    if (!(panelGlobal instanceof Panel)) palette.text = "素材重映射";
    palette.orientation = "row";
    palette.alignChildren = ["center", "top"];
    palette.spacing = 10;
    palette.margins = 16;


    var remap_btn = palette.add("button", undefined, undefined, { name: "remap_btn" });
    remap_btn.helpTip = "选择素材(可以多个),然后单击";
    remap_btn.text = "重映射";
    remap_btn.preferredSize.width = 80;
    remap_btn.onClick = loop_it

    // 判断是否在数组内 ES不自带 所以要加一个
    function isInArray(arr, value) {
        for (var i = 0; i < arr.length; i++) {
            if (value === arr[i]) {
                return true;
            }
        }
        return false;
    }


    function loop_it() {
        // 当前项目选择的文件
        var selItems = app.project.selection
        if (selItems.length > 0) {

            // 遍历选择的文件
            for (var i = 0; i < selItems.length; i++) {
                selItem = selItems[i]

                // 判断文件是否有本地文件
                if (selItem.mainSource instanceof FileSource) {

                    // 获取文件后缀
                    inx = selItem.name.lastIndexOf(".")
                    endfix = selItem.name.substr(inx, 9)

                    // 判断文件后缀是否在指定列表内
                    if (isInArray(loop_list, endfix)) {

                        // 将该素材的源循环改为指定次数
                        selItem.mainSource.loop = loop_times
                    }
                }
            }
        } else {
            alert("请至少选择一个项目")
        }
    }

    palette.layout.layout(true);
    palette.layout.resize();
    palette.onResizing = palette.onResize = function () { this.layout.resize(); }

    if (palette instanceof Window) palette.show();

    return palette;

}());

 

 

您的电子邮箱地址不会被公开。 必填项已用*标注

请下载到本地观看!因为pdf是用的阿里云盘预览,可能部分字体加载不了。

请安装油猴脚本,并下载月离的万事屋脚本。详情请查看菜单 导航 - 用户指引

请在右上角三个点 - 下载管理 - 找到刚才的文件,选择允许下载。 或者换个浏览器