将聊天室特效脚本纳入 Vite 打包
This commit is contained in:
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* 文件功能:聊天室全屏特效 Vite 入口
|
||||
*
|
||||
* 按原 public script 顺序加载所有全屏特效模块,让生产环境由 Vite 统一压缩、加 hash 并减少请求数。
|
||||
*/
|
||||
|
||||
import "./effects/effect-sounds.js";
|
||||
import "./effects/effect-manager.js";
|
||||
import "./effects/fireworks.js";
|
||||
import "./effects/rain.js";
|
||||
import "./effects/lightning.js";
|
||||
import "./effects/snow.js";
|
||||
import "./effects/sakura.js";
|
||||
import "./effects/meteors.js";
|
||||
import "./effects/gold-rain.js";
|
||||
import "./effects/hearts.js";
|
||||
import "./effects/confetti.js";
|
||||
import "./effects/fireflies.js";
|
||||
@@ -150,3 +150,5 @@ const ConfettiEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.ConfettiEffect = ConfettiEffect;
|
||||
@@ -182,8 +182,8 @@ const EffectManager = (() => {
|
||||
_canvas = null;
|
||||
_current = null;
|
||||
// 通知音效引擎停止(兜底:正常情况下音效会自行计时结束)
|
||||
if (typeof EffectSounds !== "undefined") {
|
||||
EffectSounds.stop();
|
||||
if (typeof window.EffectSounds !== "undefined") {
|
||||
window.EffectSounds.stop();
|
||||
}
|
||||
|
||||
if (playNext && _queue.length > 0) {
|
||||
@@ -260,8 +260,8 @@ const EffectManager = (() => {
|
||||
_bindClickStop();
|
||||
|
||||
// 同步触发对应音效
|
||||
if (typeof EffectSounds !== "undefined") {
|
||||
EffectSounds.play(type);
|
||||
if (typeof window.EffectSounds !== "undefined") {
|
||||
window.EffectSounds.play(type);
|
||||
}
|
||||
|
||||
let started = false;
|
||||
@@ -269,38 +269,38 @@ const EffectManager = (() => {
|
||||
try {
|
||||
switch (type) {
|
||||
case "fireworks":
|
||||
started = _startEffect(typeof FireworksEffect !== "undefined" ? FireworksEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.FireworksEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "wedding-fireworks":
|
||||
// 婚礼专属:双倍礼花,粉金浪漫配色,持续 12 秒
|
||||
started = _startEffect(typeof FireworksEffect !== "undefined" ? FireworksEffect : undefined, canvas, finishCurrent, "startDouble");
|
||||
started = _startEffect(window.FireworksEffect, canvas, finishCurrent, "startDouble");
|
||||
break;
|
||||
case "rain":
|
||||
started = _startEffect(typeof RainEffect !== "undefined" ? RainEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.RainEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "lightning":
|
||||
started = _startEffect(typeof LightningEffect !== "undefined" ? LightningEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.LightningEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "snow":
|
||||
started = _startEffect(typeof SnowEffect !== "undefined" ? SnowEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.SnowEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "sakura":
|
||||
started = _startEffect(typeof SakuraEffect !== "undefined" ? SakuraEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.SakuraEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "meteors":
|
||||
started = _startEffect(typeof MeteorsEffect !== "undefined" ? MeteorsEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.MeteorsEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "gold-rain":
|
||||
started = _startEffect(typeof GoldRainEffect !== "undefined" ? GoldRainEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.GoldRainEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "hearts":
|
||||
started = _startEffect(typeof HeartsEffect !== "undefined" ? HeartsEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.HeartsEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "confetti":
|
||||
started = _startEffect(typeof ConfettiEffect !== "undefined" ? ConfettiEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.ConfettiEffect, canvas, finishCurrent);
|
||||
break;
|
||||
case "fireflies":
|
||||
started = _startEffect(typeof FirefliesEffect !== "undefined" ? FirefliesEffect : undefined, canvas, finishCurrent);
|
||||
started = _startEffect(window.FirefliesEffect, canvas, finishCurrent);
|
||||
break;
|
||||
default:
|
||||
console.warn(`[EffectManager] 未知特效类型:${type}`);
|
||||
@@ -925,5 +925,6 @@ const EffectSounds = (() => {
|
||||
return { play, stop, ding };
|
||||
})();
|
||||
|
||||
window.EffectSounds = EffectSounds;
|
||||
// 将叮咚通知音暴露为独立全局变量,供 toast/banner 等组件直接调用
|
||||
window.chatSound = { ding: () => EffectSounds.ding() };
|
||||
@@ -173,3 +173,5 @@ const FirefliesEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.FirefliesEffect = FirefliesEffect;
|
||||
@@ -672,3 +672,5 @@ const FireworksEffect = (() => {
|
||||
|
||||
return { start, startDouble };
|
||||
})();
|
||||
|
||||
window.FireworksEffect = FireworksEffect;
|
||||
@@ -153,3 +153,5 @@ const GoldRainEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.GoldRainEffect = GoldRainEffect;
|
||||
@@ -135,3 +135,5 @@ const HeartsEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.HeartsEffect = HeartsEffect;
|
||||
@@ -204,3 +204,5 @@ const LightningEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.LightningEffect = LightningEffect;
|
||||
@@ -198,3 +198,5 @@ const MeteorsEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.MeteorsEffect = MeteorsEffect;
|
||||
@@ -124,3 +124,5 @@ const RainEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.RainEffect = RainEffect;
|
||||
@@ -140,3 +140,5 @@ const SakuraEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.SakuraEffect = SakuraEffect;
|
||||
@@ -260,3 +260,5 @@ const SnowEffect = (() => {
|
||||
|
||||
return { start };
|
||||
})();
|
||||
|
||||
window.SnowEffect = SnowEffect;
|
||||
@@ -227,19 +227,8 @@
|
||||
@include('chat.partials.games.gomoku-panel')
|
||||
@include('chat.partials.games.earn-panel')
|
||||
|
||||
{{-- 全屏特效系统:管理员和会员入场可触发的全屏动效 --}}
|
||||
<script src="/js/effects/effect-sounds.js"></script>
|
||||
<script src="/js/effects/effect-manager.js"></script>
|
||||
<script src="/js/effects/fireworks.js"></script>
|
||||
<script src="/js/effects/rain.js"></script>
|
||||
<script src="/js/effects/lightning.js"></script>
|
||||
<script src="/js/effects/snow.js"></script>
|
||||
<script src="/js/effects/sakura.js"></script>
|
||||
<script src="/js/effects/meteors.js"></script>
|
||||
<script src="/js/effects/gold-rain.js"></script>
|
||||
<script src="/js/effects/hearts.js"></script>
|
||||
<script src="/js/effects/confetti.js"></script>
|
||||
<script src="/js/effects/fireflies.js"></script>
|
||||
{{-- 全屏特效系统:管理员和会员入场可触发的全屏动效,生产环境由 Vite 压缩与版本化 --}}
|
||||
@vite('resources/js/effects.js')
|
||||
|
||||
@include('chat.partials.scripts')
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ export default defineConfig({
|
||||
"resources/css/app.css",
|
||||
"resources/js/app.js",
|
||||
"resources/js/chat.js",
|
||||
"resources/js/effects.js",
|
||||
],
|
||||
refresh: true,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user