Vanilla Disintegratev1.6.1
ZH
本页内容

每个内置预设都可直接使用:它包含删除与恢复动画,以及两个阶段对应的音频。在内置预设中,恢复时会反向播放同一个声音。自定义配置则可以为删除和恢复选择不同的声音。

四个预设

名称删除恢复时长
dust元素化为向上飘散的尘埃。尘埃在元素最终几何位置聚合。850 ms
scatter细小碎片从左到右消散,并以向上为主扩散。碎片从同一散布区域聚合。1100 ms
vapor表面从顶部快速升起,形成逐渐收缩的蒸汽流。收束的蒸汽流凝结为可见元素。750 ms
wind一股长气流把粒子带向一侧。同一方向的气流把粒子送回。2075 ms

remove() 选择删除阶段,restore() 选择恢复阶段。预设音频自动启用,并与所选视觉效果对齐。

effects.remove(card, { preset: 'dust' });
effects.restore(card, { preset: 'dust' });

effects.remove(card, { preset: 'scatter' });
effects.restore(card, { preset: 'scatter' });

effects.remove(card, { preset: 'vapor' });
effects.restore(card, { preset: 'vapor' });

effects.remove(card, { preset: 'wind' });
effects.restore(card, { preset: 'wind' });

选择实例预设

构造器必须接收一个预设或一个自定义效果。单次操作可选择另一个完整预设:

const effects = new Disintegrator({
  preset: 'vapor',
});

effects.remove(firstElement); // vapor
effects.remove(secondElement, { preset: 'scatter' });
effects.restore(insertedElement, { preset: 'wind' });

使用记住的预设恢复

保留节点重新插入后,restore() 会恢复删除时选择的完整预设,包括恢复音频。

const removal = effects.remove(card, {
  preset: 'wind',
  retain: true,
});

await removal.finished;

const retained = effects.take(removal.removalId!);
if (retained) {
  list.prepend(retained);
  await effects.restore(retained).finished; // wind 恢复
}

确实需要另一个完整预设时,再向 restore() 传入 preset。若改为传入内联 effect,会选择自定义视觉效果;除非该操作同时提供自己的声音,否则它保持静音。

将预设静音

内置音频不需要启用开关。若要保留预设动画但关闭实例或单次操作的声音,请传入 sound: false:

const silent = new Disintegrator({ preset: 'dust', sound: false });

effects.remove(card, { preset: 'vapor', sound: false });

预设有意保持原子性:它的动画与音频已预先同步,只替换其中一部分很可能会破坏时序。因此,预设不能与另一视觉效果或不同音频组合。若要使用内置粒子运动搭配自定义声音,请把预设的 effect 当作自定义效果,并提供显式声音对。

在 GitHub 上编辑此页