介绍
许多可以循环的素材,比如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;
}());
</code></pre>