You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

After Effects脚本问题:edittext值更新后点击按钮仍用初始值

问题解决与教程推荐

核心问题原因

你写的代码里,var dur = Math.floor(setDur.text);这行是在脚本刚启动时执行的,只会读取输入框的初始值30并赋值给dur。之后不管你怎么修改输入框的内容,这个dur变量都不会自动更新,所以点击按钮时始终用的是最初的30。

修正后的代码逻辑

把读取输入框数值的操作移到按钮的点击事件里,每次点击时才获取当前输入框的最新内容,这样就能用修改后的数值创建合成了:

var durPanel = myWindow.add("panel", undefined, "Set duration (seconds)");
var setDur = durPanel.add("edittext", undefined, "30");
var compButton = myWindow.add("button", undefined, "Add Comp");

compButton.onClick = function() {
    // 每次点击时获取输入框的当前值,转成数字
    var dur = Math.floor(parseFloat(setDur.text));
    // 处理非数字输入的情况,默认回到30
    if (isNaN(dur)) {
        dur = 30;
    }
    app.project.items.addComp("New Comp", 1920, 1080, 1, dur, 25);
};

之前你尝试用onChanging或onChange更新dur没效果,大概率是变量作用域的问题——你在事件里更新的dur和按钮点击事件里引用的dur不是同一个(比如如果是在事件函数内部重新声明了var dur)。其实完全没必要监听输入事件,直接在点击时取最新值是最直接可靠的方案。

优质AE脚本教程推荐

  • Adobe官方After Effects脚本开发文档:这是最权威的参考资料,里面包含完整的JavaScript API说明、代码示例和开发规范,能帮你系统掌握AE脚本的底层逻辑。
  • 影视后期社区的脚本板块:国内很多影视相关论坛都有专门的脚本讨论区,里面有大量实战向的教程,还有很多开发者分享的实用工具源码,适合边练边学。
  • 视频类教程:可以找一些AE脚本开发的系列视频,很多创作者会从UI搭建、基础API调用到复杂功能实现一步步演示,可视化的教学更容易上手。
  • 《After Effects Scripting Guide》官方手册:可以下载PDF版本,随时查阅API细节和最佳实践,遇到问题时能快速定位解决方案。

内容的提问来源于stack exchange,提问作者ECYR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:42:15