如何使用 ExtendScripts 在 Adobe After Effects 中以编程方式获取文本选择
How can I programmatically get text selection in Adobe After Effects with ExtendScripts
我有带有白色文本颜色字符串的对象 TextLayer。然后我动画文本颜色选择(第二个字符改变颜色白色 -> 蓝色)。
如何以编程方式获得此选择和颜色?
您似乎无法通过脚本达到选择的开始值和结束值。但是您可以添加表达式控制器效果并从中获取值。
- 下面的代码假设您的项目中有一个带有名为 "my text layer".
的文本层的合成
- 为该图层添加一个颜色表达式控制器。将表达式
text.animator("Animator 1").property.fillColor
添加到该效果。
您可以对您选择的值执行相同的操作。
var preExpression = true;
var currentTime = 5; // in seconds
// get the sourceText? works!
var val = app.project.item(1).layer("my text layer").property("ADBE Text Properties").property("ADBE Text Document").valueAtTime(currentTime, preExpression);
// get the Text Percent Start? Wont work!
var sel = app.project.item(1).layer("my text layer").property("ADBE Text Properties").property("ADBE Text Animators").property("ADBE Text Animator").property("ADBE Text Selectors").property("ADBE Text Selector").property("ADBE Text Percent Start").valueAtTime(currentTime, preExpression);
// add an expression controller for color and get the color from that one? works!
var col = app.project.item(1).layer("my text layer").property("ADBE Effect Parade").property("ADBE Color Control").property("ADBE Color Control-0001").valueAtTime(currentTime, false);
$.writeln(val);
$.writeln(sel);
$.writeln(col);
查看 After Effects Scripting Guide. Use redefinery's rd_GimmePropPath 脚本以获取属性的匹配名称。
我有带有白色文本颜色字符串的对象 TextLayer。然后我动画文本颜色选择(第二个字符改变颜色白色 -> 蓝色)。
如何以编程方式获得此选择和颜色?
您似乎无法通过脚本达到选择的开始值和结束值。但是您可以添加表达式控制器效果并从中获取值。
- 下面的代码假设您的项目中有一个带有名为 "my text layer". 的文本层的合成
- 为该图层添加一个颜色表达式控制器。将表达式
text.animator("Animator 1").property.fillColor
添加到该效果。
您可以对您选择的值执行相同的操作。
var preExpression = true;
var currentTime = 5; // in seconds
// get the sourceText? works!
var val = app.project.item(1).layer("my text layer").property("ADBE Text Properties").property("ADBE Text Document").valueAtTime(currentTime, preExpression);
// get the Text Percent Start? Wont work!
var sel = app.project.item(1).layer("my text layer").property("ADBE Text Properties").property("ADBE Text Animators").property("ADBE Text Animator").property("ADBE Text Selectors").property("ADBE Text Selector").property("ADBE Text Percent Start").valueAtTime(currentTime, preExpression);
// add an expression controller for color and get the color from that one? works!
var col = app.project.item(1).layer("my text layer").property("ADBE Effect Parade").property("ADBE Color Control").property("ADBE Color Control-0001").valueAtTime(currentTime, false);
$.writeln(val);
$.writeln(sel);
$.writeln(col);
查看 After Effects Scripting Guide. Use redefinery's rd_GimmePropPath 脚本以获取属性的匹配名称。