AE表达式|带逗号的数字计数动画表达式代码

AE表达式|带逗号的数字计数动画表达式代码

动画数字计数器(带逗号)AE表达式
完全可自定义的表达式,用于显示带有所选小数符号、千位分隔符、前缀和后缀的数字。

// 获取动画滑块的值  
val = effect("Slider Control")("Slider");  

// 设置显示的小数位数  
decimals = 2;  

// 选择小数符号(可以是句点或逗号)  
decimalSymbol = ",";     

// 设置千位分隔符(空格、句点或留空表示无分隔符)  
thousandsSeparator = " ";   

// 设置前缀(如 "$"、"€" 等)  
prefix = "$";             

// 设置后缀(如 "%"、"€" 等)  
suffix = "";              

// 根据小数位数对值进行四舍五入  
factor = Math.pow(10, decimals);  
rounded = Math.round(val * factor) / factor;  

// 将四舍五入后的值拆分为整数部分和小数部分  
parts = rounded.toFixed(decimals).split(".");  
whole = parts[0];  
decimal = parts[1];  

// 为整数部分添加千位分隔符  
formattedWhole = "";  
for (i = 0; i < whole.length; i++) {  
  if (i > 0 && (whole.length - i) % 3 == 0) {  
    formattedWhole += thousandsSeparator;  
  }  
  formattedWhole += whole[i];  
}  

// 组合格式化后的整数部分、小数部分和符号  
formatted = prefix + formattedWhole + decimalSymbol + decimal + suffix;  

// 输出格式化结果  
formatted;

应用位置
将此表达式粘贴到任何与动画滑块(Slider)关联的文本图层的源文本(Source Text)中。它将自动格式化值并清晰地显示出来。

工作原理:详细解析
获取滑块值
val = effect(“Slider Control”)(“Slider”);
这一行代码从 After Effects 项目中动画化的滑块控制(如数字计数器)中获取值。这个滑块值将被格式化并显示在文本中。

设置小数精度
decimals = 2;
在这里定义希望显示的小数位数。可以根据需要将此值设置为 0、1、2 或更多。例如,设置为 2 将显示为 12.34,设置为 1 将显示为 12.3,设置为 0 将显示为 12。

定义小数符号
decimalSymbol = “,”;
这设置了数字的小数符号。如果想要使用逗号(,),可以在这里指定,但也可以根据格式选择使用句点(.)(例如,12.34 或 12,34)。

设置千位分隔符
thousandsSeparator = ” “;
这里定义了如何分隔大数字(千位)。可以使用空格(” “)、句点(”.”)或留空(””),如果不想要任何分隔符。例如,可以显示成 1 000 000 或 1.000.000。

定义前缀和后缀
prefix = “$”;
suffix = “”;
可以设置前缀(如 ”





或其他符号)和后缀(如

“、”€”或其他符号)和后缀(如”” 来显示价格,如 $100 或 “%” 来表示百分比。

对值进行四舍五入
factor = Math.pow(10, decimals);
rounded = Math.round(val * factor) / factor;
这是四舍五入的逻辑。它的工作原理如下:

将原始值乘以 10 的小数位数次方(Math.pow(10, decimals))。
将结果四舍五入到最接近的整数(Math.round())。
然后,将其除以 10,以将小数点移动回正确的位置。
将数字拆分为整数部分和小数部分
parts = rounded.toFixed(decimals).split(“.”);
whole = parts[0];
decimal = parts[1];
在四舍五入后,数字会转换成具有所需小数位数的字符串(toFixed(decimals))。
数字被拆分为两部分:整数部分(小数点前)和小数部分(小数点后)。

为整数部分添加千位分隔符
formattedWhole = “”;
for (i = 0; i < whole.length; i++) { if (i > 0 && (whole.length – i) % 3 == 0) {
formattedWhole += thousandsSeparator;
}
formattedWhole += whole[i];
}
这一部分格式化整数部分,通过在每 3 位数字之间添加千位分隔符。它循环遍历整数部分(小数点前),并在每三位数字前添加一个分隔符(例如,1,000、1 000、1.000 等)。

组合所有部分
formatted = prefix + formattedWhole + decimalSymbol + decimal + suffix;
最终,它组合了:

前缀(如 $)
格式化后的整数(带千位分隔符)
小数符号(逗号或句点)
小数部分
后缀(如 %)
输出格式化值
formatted;
最终输出格式化后的值,将在文本图层的源文本中看到。

这个动画数字计数器表达式可以为动画添加动态的数字效果,特别适合在演示、报告或价格显示中使用。

声明:预览视频中的视频、音频、图片及字体仅做展示,不包含在下载文件内;水印不代表署名仅用于防盗,版权归原作者所有。 版权说明:资源均源于互联网收集整理,不保证资源的可用及完整性,不提供安装使用及技术服务,仅供个人学习研究,请勿商用。喜欢记得支持正版,若侵犯第三方权益,请及时联系我们删除!《版权声明》
分享海报

评论0

请先
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录