You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

56 lines
8.7 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.mounted = mounted;
exports.beforeUnmount = beforeUnmount;
/** 一次性清理:幂等,可安全地被卸载流程 + 窗口 unload 事件重复触发。
* 拖出为浮窗后关闭时,Cocos 不一定会调用面板 close()/unmount(),
* 因此额外监听 pagehide/beforeunload 兜底,避免预览引擎、游戏 DOM、定时器残留。 */
function doDispose() {
if (this._disposed)
return;
this._disposed = true;
window.clearInterval(this.interval);
window.clearInterval(this.perfTimer);
window.clearInterval(this.resTimer);
window.clearTimeout(this.filterTimer);
window.clearTimeout(this.copyTimer);
window.clearTimeout(this.mcpCopyTimer);
if (this.stopHostSync)
this.stopHostSync(); // 停止游戏宿主定期同步
if (this.teardownPreview)
this.teardownPreview(); // 停主循环/调度器/音频、释放资源
try {
const host = document.getElementById('yyka-game-host');
if (host)
host.remove(); // 移除顶层游戏 DOM,避免浮窗关闭后画面残留
}
catch (_) { /* ignore */ }
window.removeEventListener('pointermove', this.onDragMove);
window.removeEventListener('pointerup', this.endDrag);
window.removeEventListener('pointercancel', this.endDrag);
window.removeEventListener('resize', this.onResize);
window.removeEventListener('pagehide', this._onPageHide);
window.removeEventListener('beforeunload', this._onPageHide);
}
async function mounted() {
this.ensureServer();
this.refresh();
await this.initPreviewInfo();
this.$nextTick(() => this.renderPreview());
this.loadMcpState();
this.interval = window.setInterval(() => this.refresh(), 1000);
window.addEventListener('pointermove', this.onDragMove);
window.addEventListener('pointerup', this.endDrag);
window.addEventListener('pointercancel', this.endDrag);
window.addEventListener('resize', this.onResize);
// 拖出为独立浮窗后直接关窗时,仅关窗口不触发下文的 beforeUnmount,需在此兜底清理
this._onPageHide = () => doDispose.call(this);
window.addEventListener('pagehide', this._onPageHide);
window.addEventListener('beforeunload', this._onPageHide);
}
function beforeUnmount() {
window.removeEventListener('pagehide', this._onPageHide);
window.removeEventListener('beforeunload', this._onPageHide);
doDispose.call(this);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3BhbmVscy9kZWZhdWx0L2xpZmVjeWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBCQSwwQkFlQztBQUVELHNDQUlDO0FBL0NEOzsyREFFMkQ7QUFDM0QsU0FBUyxTQUFTO0lBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU87SUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDdEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWTtRQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLGFBQWE7SUFDekQsSUFBSSxJQUFJLENBQUMsZUFBZTtRQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQjtJQUNyRSxJQUFJLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMseUJBQXlCO0lBQ3RELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVNLEtBQUssVUFBVSxPQUFPO0lBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELGlEQUFpRDtJQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQWdCLGFBQWE7SUFDekIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0QsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIOS4gOasoeaAp+a4heeQhu+8muW5guetie+8jOWPr+WuieWFqOWcsOiiq+WNuOi9vea1geeoiyArIOeql+WPoyB1bmxvYWQg5LqL5Lu26YeN5aSN6Kem5Y+R44CCXG4gKiAg5ouW5Ye65Li65rWu56qX5ZCO5YWz6Zet5pe277yMQ29jb3Mg5LiN5LiA5a6a5Lya6LCD55So6Z2i5p2/IGNsb3NlKCkvdW5tb3VudCgp77yMXG4gKiAg5Zug5q2k6aKd5aSW55uR5ZCsIHBhZ2VoaWRlL2JlZm9yZXVubG9hZCDlhZzlupXvvIzpgb/lhY3pooTop4jlvJXmk47jgIHmuLjmiI8gRE9N44CB5a6a5pe25Zmo5q6L55WZ44CCICovXG5mdW5jdGlvbiBkb0Rpc3Bvc2UodGhpczogYW55KSB7XG4gICAgaWYgKHRoaXMuX2Rpc3Bvc2VkKSByZXR1cm47XG4gICAgdGhpcy5fZGlzcG9zZWQgPSB0cnVlO1xuICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMucGVyZlRpbWVyKTtcbiAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLnJlc1RpbWVyKTtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuZmlsdGVyVGltZXIpO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jb3B5VGltZXIpO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5tY3BDb3B5VGltZXIpO1xuICAgIGlmICh0aGlzLnN0b3BIb3N0U3luYykgdGhpcy5zdG9wSG9zdFN5bmMoKTsgLy8g5YGc5q2i5ri45oiP5a6/5Li75a6a5pyf5ZCM5q2lXG4gICAgaWYgKHRoaXMudGVhcmRvd25QcmV2aWV3KSB0aGlzLnRlYXJkb3duUHJldmlldygpOyAvLyDlgZzkuLvlvqrnjq8v6LCD5bqm5ZmoL+mfs+mikeOAgemHiuaUvui1hOa6kFxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneXlrYS1nYW1lLWhvc3QnKTtcbiAgICAgICAgaWYgKGhvc3QpIGhvc3QucmVtb3ZlKCk7IC8vIOenu+mZpOmhtuWxgua4uOaIjyBET03vvIzpgb/lhY3mta7nqpflhbPpl63lkI7nlLvpnaLmrovnlZlcbiAgICB9IGNhdGNoIChfKSB7IC8qIGlnbm9yZSAqLyB9XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgdGhpcy5vbkRyYWdNb3ZlKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5lbmREcmFnKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmNhbmNlbCcsIHRoaXMuZW5kRHJhZyk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIHRoaXMuX29uUGFnZUhpZGUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCB0aGlzLl9vblBhZ2VIaWRlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1vdW50ZWQodGhpczogYW55KSB7XG4gICAgdGhpcy5lbnN1cmVTZXJ2ZXIoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICBhd2FpdCB0aGlzLmluaXRQcmV2aWV3SW5mbygpO1xuICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHRoaXMucmVuZGVyUHJldmlldygpKTtcbiAgICB0aGlzLmxvYWRNY3BTdGF0ZSgpO1xuICAgIHRoaXMuaW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5yZWZyZXNoKCksIDEwMDApO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIHRoaXMub25EcmFnTW92ZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuZW5kRHJhZyk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJjYW5jZWwnLCB0aGlzLmVuZERyYWcpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uUmVzaXplKTtcbiAgICAvLyDmi5blh7rkuLrni6znq4vmta7nqpflkI7nm7TmjqXlhbPnqpfml7bvvIzku4XlhbPnqpflj6PkuI3op6blj5HkuIvmlofnmoQgYmVmb3JlVW5tb3VudO+8jOmcgOWcqOatpOWFnOW6lea4heeQhlxuICAgIHRoaXMuX29uUGFnZUhpZGUgPSAoKSA9PiBkb0Rpc3Bvc2UuY2FsbCh0aGlzKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUnLCB0aGlzLl9vblBhZ2VIaWRlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgdGhpcy5fb25QYWdlSGlkZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiZWZvcmVVbm1vdW50KHRoaXM6IGFueSkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIHRoaXMuX29uUGFnZUhpZGUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCB0aGlzLl9vblBhZ2VIaWRlKTtcbiAgICBkb0Rpc3Bvc2UuY2FsbCh0aGlzKTtcbn0iXX0=