From a72c01427a21125297f169485cf2b5a1332b6a02 Mon Sep 17 00:00:00 2001 From: lizhuoyuan <2820814112@qq.com> Date: Fri, 3 Jan 2025 20:07:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=AB=98=E7=BA=A7=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8C=89=E5=90=8D=E5=AD=97=E5=88=A0=E9=99=A4?= =?UTF-8?q?ticker=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=98=AF=E5=90=A6=E6=9C=89?= =?UTF-8?q?=E7=94=A8=E5=BE=85=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/plugins.js | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/project/plugins.js b/project/plugins.js index 780efbcc..1d639f00 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -1139,6 +1139,29 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = // github仓库:https://github.com/unanmed/animate // npm包名:mutate-animate // npm地址:https://www.npmjs.com/package/mutate-animate + + // 保存所有Ticker的引用 + const tickersMap = new Map(); + + /** 摧毁指定名字的ticker */ + this.deleteTicker = function (name) { + const ticker = tickersMap.get(name); + if (!ticker) return; + ticker.destroy(); + tickersMap.delete(name); + } + + /** 摧毁所有有名字的ticker */ + this.deleteAllTickers = function () { + tickersMap.forEach((ticker) => { + if (!ticker) return; + ticker.destroy(); + }) + tickersMap.clear(); + } + + this.getAllTickers = () => tickersMap; + var M = Object.defineProperty; var E = (n, i, t) => i in n ? M(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t; var o = (n, i, t) => (E(n, typeof i != "symbol" ? i + "" : i, t), t); @@ -1179,16 +1202,18 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } } class F { - constructor() { + constructor(name) { o(this, "timing"); o(this, "relation", "absolute"); o(this, "easeTime", 0); o(this, "applying", {}); o(this, "getTime", Date.now); - o(this, "ticker", new I()); + const ticker = new I(); + o(this, "ticker", ticker); o(this, "value", {}); o(this, "listener", {}); this.timing = (i) => i; + if (typeof name === 'string') tickersMap.set(name, ticker); } async all() { if (Object.values(this.applying).every((i) => i === !0))