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

Adobe Animate中TextInput实现RGB混合点击无响应问题排查

Adobe Animate RGB混合按钮无响应问题修复

原代码的核心问题:

  • 直接用TextInput实例(比如r1)做数值判断,实际应该取它的text内容转成数字再判断
  • 字符串直接相加会拼接(比如输入20和30,r1.text + r2.text会变成"2030"而不是50),必须先转成数值类型
  • 错误覆盖了组件实例变量(比如r3 = Math.round(...)把原本指向TextInput的r3改成了数值,后续r3.text会报错)

修正后的代码:

// 保留组件实例引用
var r1 = this.r1;
var g1 = this.g1;
var b1 = this.b1;
var r2 = this.r2;
var g2 = this.g2;
var b2 = this.b2;
var r3 = this.r3;
var g3 = this.g3;
var b3 = this.b3;

this.blend_btn.addEventListener("click", Blending);

function Blending(evt) {
    // 处理R通道:先转数字,再校验范围,最后计算赋值
    var rVal1 = Number(r1.text);
    var rVal2 = Number(r2.text);
    if (!isNaN(rVal1) && rVal1 >= 0 && rVal1 <= 255 && !isNaN(rVal2) && rVal2 >=0 && rVal2 <=255) {
        var rResult = Math.round((rVal1 + rVal2)/2);
        r3.text = String(rResult);
    }

    // 处理G通道
    var gVal1 = Number(g1.text);
    var gVal2 = Number(g2.text);
    if (!isNaN(gVal1) && gVal1 >= 0 && gVal1 <= 255 && !isNaN(gVal2) && gVal2 >=0 && gVal2 <=255) {
        var gResult = Math.round((gVal1 + gVal2)/2);
        g3.text = String(gResult);
    }

    // 处理B通道
    var bVal1 = Number(b1.text);
    var bVal2 = Number(b2.text);
    if (!isNaN(bVal1) && bVal1 >= 0 && bVal1 <= 255 && !isNaN(bVal2) && bVal2 >=0 && bVal2 <=255) {
        var bResult = Math.round((bVal1 + bVal2)/2);
        b3.text = String(bResult);
    }
}

额外优化点:

  • 增加isNaN判断,避免用户输入非数字内容导致计算出错
  • 每个通道单独校验两个输入的合法性,只有都合法才计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:42:39