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

如何复用MotorCortex的Incident?淡入事件重复创建优化咨询

复用淡入动画Incident的最优实现方案

完全可以复用同一个CSSEffect实例来添加多次incident,不需要每次新建,这是更高效的实现方式。

你的当前代码每次创建新的CSSEffect实例,其实完全没必要——只要动画的属性(目标选择器、时长、动画属性)没有变化,直接复用同一个实例即可,既减少对象创建开销,也让代码更简洁。

优化后的代码如下:

// 只创建一次CSSEffect实例
const attrs = { animatedAttrs: { opacity: 1 } };
const props = { selector: ".elem", duration: 1000 };
const fadeInEffect = new CSSEffect(attrs, props);

// 第一次添加incident
clip.addIncident(fadeInEffect, 1000);

// 执行其他操作后,再次复用同一个实例添加incident
// do something else and then later on
clip.addIncident(fadeInEffect, 1000);

如果后续需要根据不同场景调整动画参数(比如不同的目标元素、时长),可以封装一个简单的工厂函数来生成实例,避免重复代码:

function createFadeInEffect(selector = ".elem", duration = 1000) {
  return new CSSEffect(
    { animatedAttrs: { opacity: 1 } },
    { selector, duration }
  );
}

// 复用工厂函数生成不同参数的实例
const fadeInElem1 = createFadeInEffect(".elem1");
const fadeInElem2 = createFadeInEffect(".elem2", 1500);

clip.addIncident(fadeInElem1, 1000);
clip.addIncident(fadeInElem2, 2000);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:20:50