drgame-cc 1.0.45 → 1.0.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/drres/focus/focus_1/gesture.atlas +34 -0
  2. package/drres/focus/focus_1/gesture.atlas.meta +6 -0
  3. package/drres/focus/focus_1/gesture.json +1 -0
  4. package/drres/focus/focus_1/gesture.json.meta +10 -0
  5. package/drres/focus/focus_1/gesture.png +0 -0
  6. package/drres/{icons/pointer-yellow-60.png.meta → focus/focus_1/gesture.png.meta} +14 -14
  7. package/drres/focus/focus_1.meta +13 -0
  8. package/drres/focus/focus_2/gesture.atlas +41 -0
  9. package/drres/focus/focus_2/gesture.atlas.meta +6 -0
  10. package/drres/focus/focus_2/gesture.json +1 -0
  11. package/drres/focus/focus_2/gesture.json.meta +10 -0
  12. package/drres/focus/focus_2/gesture.png +0 -0
  13. package/drres/{icons/pointer-blue-60.png.meta → focus/focus_2/gesture.png.meta} +13 -13
  14. package/drres/focus/focus_2.meta +13 -0
  15. package/drres/focus/focus_3/gesture.atlas +34 -0
  16. package/drres/focus/focus_3/gesture.atlas.meta +6 -0
  17. package/drres/focus/focus_3/gesture.json +1 -0
  18. package/drres/focus/focus_3/gesture.json.meta +10 -0
  19. package/drres/focus/focus_3/gesture.png +0 -0
  20. package/drres/{icons/pointer-pink-60.png.meta → focus/focus_3/gesture.png.meta} +12 -12
  21. package/drres/focus/focus_3.meta +13 -0
  22. package/drres/focus/focus_4/gesture.atlas +20 -0
  23. package/drres/focus/focus_4/gesture.atlas.meta +6 -0
  24. package/drres/focus/focus_4/gesture.json +1 -0
  25. package/drres/focus/focus_4/gesture.json.meta +10 -0
  26. package/drres/focus/focus_4/gesture.png +0 -0
  27. package/drres/focus/focus_4/gesture.png.meta +38 -0
  28. package/drres/focus/focus_4.meta +13 -0
  29. package/drres/focus.meta +13 -0
  30. package/drres/prefab/ExitWin.prefab +2 -2
  31. package/drres/prefab/Toast.prefab +378 -378
  32. package/drscript/{ad/AdManager.ts.meta → BtnExtra.ts.meta} +1 -1
  33. package/drscript/Define.ts +17 -2
  34. package/drscript/{ad/AdSlot.ts.meta → Define.ts.meta} +1 -1
  35. package/drscript/{ad/AggregateAdProvider.ts.meta → ExitWin.ts.meta} +1 -1
  36. package/drscript/GameAnalytics.ts +37 -118
  37. package/drscript/{ad/IAdProvider.ts.meta → GameAnalytics.ts.meta} +1 -1
  38. package/drscript/HelperWin.ts.meta +10 -0
  39. package/drscript/Info.ts.meta +10 -0
  40. package/drscript/InternalUitl.ts.meta +10 -0
  41. package/drscript/KeyAdapter.ts +133 -0
  42. package/drscript/KeyAdapter.ts.meta +10 -0
  43. package/drscript/Loader.ts.meta +10 -0
  44. package/drscript/PlatformAdapter.ts +178 -192
  45. package/drscript/PlatformAdapter.ts.meta +10 -0
  46. package/drscript/README.md +91 -805
  47. package/drscript/README.md.meta +6 -0
  48. package/drscript/UIAdapter.ts +324 -0
  49. package/drscript/UIAdapter.ts.meta +10 -0
  50. package/drscript/WebBridge.ts +1 -1
  51. package/drscript/WebBridge.ts.meta +10 -0
  52. package/drscript/ad-sdk/reporters/superset-lewo.js +6 -0
  53. package/drscript/ad-sdk/types/enums.d.ts +1 -0
  54. package/drscript/ad-sdk.meta +13 -0
  55. package/drscript/ad.meta +13 -0
  56. package/drscript/component/AlertTip.ts +25 -0
  57. package/drscript/component/AlertTip.ts.meta +10 -0
  58. package/drscript/component/BtnExtra.ts +17 -0
  59. package/drscript/component/BtnExtra.ts.meta +10 -0
  60. package/drscript/{ExitWin.ts → component/ExitWin.ts} +6 -8
  61. package/drscript/component/ExitWin.ts.meta +10 -0
  62. package/drscript/{HelperWin.ts → component/HelperWin.ts} +5 -19
  63. package/drscript/component/HelperWin.ts.meta +10 -0
  64. package/drscript/component.meta +13 -0
  65. package/drscript/config.meta +13 -0
  66. package/drscript/core.meta +13 -0
  67. package/drscript/focus/FocusItem.ts +1 -19
  68. package/drscript/focus/FocusManager.ts +157 -198
  69. package/drscript/focus/FocusVisualLayer.ts +74 -163
  70. package/drscript/focus.meta +13 -0
  71. package/drscript/input/KeyboardMove.ts +40 -11
  72. package/drscript/input/KeyboardMove.ts.meta +10 -0
  73. package/drscript/input.meta +13 -0
  74. package/drscript/interface.meta +13 -0
  75. package/drscript/pinyin.meta +13 -0
  76. package/drscript/toast.meta +13 -0
  77. package/drscript/virtualgamepad.meta +13 -0
  78. package/package.json +1 -1
  79. package/drres/config/default.json +0 -108
  80. package/drres/config/default.json.meta +0 -6
  81. package/drres/icons/pointer-blue-60.png +0 -0
  82. package/drres/icons/pointer-pink-60.png +0 -0
  83. package/drres/icons/pointer-white-60.png +0 -0
  84. package/drres/icons/pointer-yellow-60.png +0 -0
  85. package/drscript/Info.ts +0 -78
  86. package/drscript/InternalUitl.ts +0 -65
  87. package/drscript/ad/AdManager.ts +0 -174
  88. package/drscript/ad/AdSlot.ts +0 -44
  89. package/drscript/ad/AggregateAdProvider.ts +0 -149
  90. package/drscript/ad/IAdProvider.ts +0 -39
  91. package/drscript/ad/MockAdProvider.ts +0 -36
  92. package/drscript/ad/MockAdProvider.ts.meta +0 -10
  93. package/drscript/ad/SelfAdProvider.ts +0 -41
  94. package/drscript/ad/SelfAdProvider.ts.meta +0 -10
  95. package/drscript/config/TvUiConfig.ts +0 -155
  96. package/drscript/config/TvUiConfig.ts.meta +0 -10
  97. package/drscript/config/TvUiConfigManager.ts +0 -133
  98. package/drscript/config/TvUiConfigManager.ts.meta +0 -10
  99. package/drscript/core/BackManager.ts +0 -38
  100. package/drscript/core/BackManager.ts.meta +0 -10
  101. package/drscript/core/NativeBridge.ts +0 -137
  102. package/drscript/core/NativeBridge.ts.meta +0 -10
  103. package/drscript/core/TvUi.ts +0 -69
  104. package/drscript/core/TvUi.ts.meta +0 -10
  105. package/drscript/core/TvUiRoot.ts +0 -137
  106. package/drscript/core/TvUiRoot.ts.meta +0 -10
  107. package/drscript/icon/IconConfig.ts +0 -7
  108. package/drscript/icon/IconConfig.ts.meta +0 -10
  109. package/drscript/icon/IconManager.ts +0 -97
  110. package/drscript/icon/IconManager.ts.meta +0 -10
  111. package/drscript/input/KeyCodeAdapter.ts +0 -23
  112. package/drscript/input/RemoteInputManager.ts +0 -105
  113. package/drscript/interface/ILobbyBridge.ts +0 -5
  114. package/drscript/toast/ToastComponent.ts +0 -35
  115. package/drscript/toast/ToastComponent.ts.meta +0 -10
  116. package/drscript/toast/ToastManager.ts +0 -66
  117. package/drscript/toast/ToastManager.ts.meta +0 -10
  118. package/drscript/toast/TvExitConfirmDialog.ts +0 -334
  119. package/drscript/toast/TvExitConfirmDialog.ts.meta +0 -10
  120. package/drscript/toast/UIFunctions.ts +0 -150
  121. package/drscript/toast/UIFunctions.ts.meta +0 -10
@@ -0,0 +1,6 @@
1
+ {
2
+ "ver": "2.0.2",
3
+ "uuid": "9f635397-cb2d-409f-918f-050c5e8c5d64",
4
+ "importer": "markdown",
5
+ "subMetas": {}
6
+ }
@@ -0,0 +1,324 @@
1
+ import FocusManager from "./focus/FocusManager";
2
+ import FocusVisualLayer from "./focus/FocusVisualLayer";
3
+ import { AdSdk } from "./ad-sdk/ad-sdk";
4
+ import { WebBridge } from "./WebBridge";
5
+ import { BtnExtra } from "./component/BtnExtra";
6
+ import AlertTip from "./component/AlertTip";
7
+ import { Loader } from "./Loader";
8
+ import { KeyAdapter } from "./KeyAdapter";
9
+
10
+ declare const global: any;
11
+
12
+ /** UI 适配 - 窗口/场景栈、Back 管理、Toast、焦点视觉层等界面基础设施 */
13
+ export class UIAdapter {
14
+ /** 焦点管理快捷入口 */
15
+ public static focus = FocusManager;
16
+
17
+ // ---- 内部配置 ----
18
+ private static _focusZIndex: number = 800;
19
+ private static _focusEnabled: boolean = true;
20
+
21
+ private static visualLayer: FocusVisualLayer | null = null;
22
+
23
+ // ---- 桥接 / 状态 ----
24
+ public static webBridge: WebBridge;
25
+ static _isVIP: boolean = false;
26
+ static _zhName: string = "";
27
+ static toastPool: cc.NodePool;
28
+ static prefab: cc.Prefab;
29
+
30
+ // ---- 场景栈(只存原生场景名)----
31
+ static sceneStack: string[] = [];
32
+
33
+ // ---- 版本号 ----
34
+ static readonly version = "1.0.36";
35
+
36
+ // ---- Back 管理 ----
37
+ private static backHandlers: Array<() => boolean | void> = [];
38
+ private static backFallback: (() => boolean | void) | null = null;
39
+
40
+ public static back = {
41
+ push: (handler: () => boolean | void) => {
42
+ if (!handler) return;
43
+ UIAdapter.removeBackHandler(handler);
44
+ UIAdapter.backHandlers.push(handler);
45
+ },
46
+ remove: (handler: () => boolean | void) => { UIAdapter.removeBackHandler(handler); },
47
+ setFallback: (handler: (() => boolean | void) | null) => { UIAdapter.backFallback = handler; },
48
+ reset: () => { UIAdapter.backHandlers = []; UIAdapter.backFallback = null; },
49
+ };
50
+
51
+ private static removeBackHandler(handler: () => boolean | void) {
52
+ for (let i = UIAdapter.backHandlers.length - 1; i >= 0; i--) {
53
+ if (UIAdapter.backHandlers[i] === handler) UIAdapter.backHandlers.splice(i, 1);
54
+ }
55
+ }
56
+
57
+ private static handleBack(): boolean {
58
+ for (let i = UIAdapter.backHandlers.length - 1; i >= 0; i--) {
59
+ const h = UIAdapter.backHandlers[i];
60
+ if (!h) continue;
61
+ if (h() !== false) return true;
62
+ }
63
+ if (UIAdapter.backFallback) return UIAdapter.backFallback() !== false;
64
+ return false;
65
+ }
66
+
67
+ // ========================================================================
68
+ // 初始化
69
+ // ========================================================================
70
+ public static init(options?: {
71
+ focusZIndex?: number;
72
+ focusEnabled?: boolean;
73
+ enableInput?: boolean;
74
+ enableLifecycle?: boolean;
75
+ }) {
76
+ if (UIAdapter.visualLayer) return;
77
+
78
+ if (options) {
79
+ if (options.focusZIndex !== undefined) UIAdapter._focusZIndex = options.focusZIndex;
80
+ if (options.focusEnabled !== undefined) UIAdapter._focusEnabled = options.focusEnabled;
81
+ }
82
+
83
+ // 同步给 FocusVisualLayer
84
+ FocusVisualLayer.setFocusZIndex(UIAdapter._focusZIndex);
85
+
86
+ // 焦点视觉层
87
+ if (UIAdapter._focusEnabled) {
88
+ const scene = cc.director.getScene();
89
+ UIAdapter.visualLayer = FocusVisualLayer.create(scene);
90
+ }
91
+
92
+ // 输入(委托给 KeyAdapter)
93
+ if (options?.enableInput !== false) {
94
+ KeyAdapter.onBack = () => UIAdapter.handleBack();
95
+ KeyAdapter.init();
96
+ }
97
+
98
+ // 生命周期
99
+ if (options?.enableLifecycle !== false) {
100
+ cc.game.on(cc.game.EVENT_HIDE, UIAdapter.onGameHide, UIAdapter);
101
+ cc.game.on(cc.game.EVENT_SHOW, UIAdapter.onGameShow, UIAdapter);
102
+ }
103
+ }
104
+
105
+ public static destroy() {
106
+ cc.game.off(cc.game.EVENT_HIDE, UIAdapter.onGameHide, UIAdapter);
107
+ cc.game.off(cc.game.EVENT_SHOW, UIAdapter.onGameShow, UIAdapter);
108
+ FocusManager.reset();
109
+ KeyAdapter.destroy();
110
+ UIAdapter.backHandlers = [];
111
+ UIAdapter.backFallback = null;
112
+ if (UIAdapter.visualLayer && UIAdapter.visualLayer.node) {
113
+ cc.game?.removePersistRootNode?.(UIAdapter.visualLayer.node);
114
+ UIAdapter.visualLayer.node.destroy();
115
+ }
116
+ UIAdapter.visualLayer = null;
117
+ }
118
+
119
+ // ========================================================================
120
+ // 内部实现(供 PlatformAdapter 委托调用)
121
+ // ========================================================================
122
+
123
+ static loadPrefab(path: string): Promise<cc.Prefab> {
124
+ return new Promise((resolve, reject) => {
125
+ cc.loader.loadRes(path, cc.Prefab, (err, prefab) => {
126
+ if (err) reject(err);
127
+ else resolve(prefab);
128
+ });
129
+ });
130
+ }
131
+
132
+ static showTip(text: string, dur = 1500) {
133
+ if (!UIAdapter.toastPool || !UIAdapter.prefab) return;
134
+ let node = UIAdapter.toastPool.get();
135
+ let toastComp: AlertTip | null = null;
136
+ if (node == null) {
137
+ node = cc.instantiate(UIAdapter.prefab);
138
+ toastComp = node.getComponent(AlertTip);
139
+ } else {
140
+ toastComp = node.getComponent(AlertTip);
141
+ }
142
+ if (node.parent == null) {
143
+ cc.director.getScene().addChild(node, cc.macro.MAX_ZINDEX);
144
+ }
145
+ node.setPosition(cc.v2(cc.winSize.width / 2, cc.winSize.height / 2));
146
+
147
+ if (toastComp) toastComp.show(text);
148
+ setTimeout(() => {
149
+ if (toastComp) {
150
+ toastComp.hide(() => {
151
+ if (node && node.isValid) {
152
+ UIAdapter.toastPool.put(node);
153
+ }
154
+ });
155
+ }
156
+ }, dur);
157
+ return toastComp;
158
+ }
159
+
160
+ /** 显示预制体场景(压入预制体场景栈,返回键可回溯) */
161
+ static showScene(scene: cc.Node, onBack?: () => boolean | void) {
162
+ let currentTop = UIAdapter.focus.getTopNodeScope();
163
+ if (currentTop && currentTop.nodeType === "scene" && currentTop.node && currentTop.node !== scene && currentTop.node.isValid) {
164
+ currentTop.node.active = false;
165
+ }
166
+ scene.active = true;
167
+ // 先切换 scope,确保 activeScopeId 正确
168
+ UIAdapter.focus.pushScope(scene.uuid, {
169
+ node: scene,
170
+ nodeType: "scene",
171
+ onBack: onBack,
172
+ skipEnsureFocus: true
173
+ });
174
+ // 再注册按钮,registerButtons 内部会调用 ensureFocus
175
+ UIAdapter.focus.registerButtons(scene);
176
+ UIAdapter.findBtnExtra(scene);
177
+ }
178
+
179
+ /** 关闭预制体场景(从栈中移除,不销毁) */
180
+ static hideScene(scene: cc.Node) {
181
+ UIAdapter.focus.removeScope(scene);
182
+ scene.active = false;
183
+ }
184
+
185
+ /** 打开界面注册导航按钮 */
186
+ static showWindow(window: cc.Node, onBack?: () => boolean | void) {
187
+ // 先切换 scope,确保 activeScopeId 正确
188
+ UIAdapter.focus.pushScope(window.uuid, {
189
+ node: window,
190
+ nodeType: "window",
191
+ onBack: onBack,
192
+ skipEnsureFocus: true
193
+ });
194
+ // 再注册按钮,registerButtons 内部会调用 ensureFocus
195
+ UIAdapter.focus.registerButtons(window);
196
+ UIAdapter.findBtnExtra(window);
197
+ }
198
+
199
+ /** 关闭界面取消注册按钮事件 */
200
+ static hideWindow(window: cc.Node) {
201
+ UIAdapter.focus.removeScope(window);
202
+ }
203
+
204
+ /** 刷新界面按钮事件 */
205
+ static refreshFocus(window: cc.Node) {
206
+ UIAdapter.focus.registerButtons(window);
207
+ UIAdapter.findBtnExtra(window);
208
+ }
209
+
210
+ /** 返回键处理逻辑 */
211
+ static backHandler(): boolean {
212
+ let top = UIAdapter.focus.getTopNodeScope();
213
+ if (top && top.node) {
214
+ let node = top.node;
215
+ if (!node.isValid) {
216
+ UIAdapter.focus.popScope(top.scopeId);
217
+ return true;
218
+ }
219
+
220
+ // 1. 优先用自定义 onBack
221
+ if (top.onBack) {
222
+ let handled = top.onBack() !== false;
223
+ if (handled) {
224
+ UIAdapter.focus.removeScope(node);
225
+ }
226
+ return true;
227
+ }
228
+
229
+ if (top.nodeType === "window") {
230
+ UIAdapter.focus.removeScope(node);
231
+ node.destroy();
232
+ } else {
233
+ // 检查是否是最后一个场景
234
+ let scopes = UIAdapter.focus.getScopes();
235
+ let hasPrev = false;
236
+ for (let i = scopes.length - 1; i >= 1; i--) {
237
+ if (scopes[i].node && scopes[i].scopeId !== top.scopeId) {
238
+ hasPrev = true;
239
+ break;
240
+ }
241
+ }
242
+ if (!hasPrev) {
243
+ // 最后一个场景,直接弹出退出确认
244
+ UIAdapter.showExitWin();
245
+ return true;
246
+ }
247
+ // 不是最后一个场景,正常关闭
248
+ UIAdapter.focus.removeScope(node);
249
+ node.active = false;
250
+ let prev = UIAdapter.focus.getTopNodeScope();
251
+ if (prev && prev.node && prev.node.isValid) {
252
+ prev.node.active = true;
253
+ }
254
+ }
255
+ return true;
256
+ }
257
+
258
+ // 没有界面节点,走原生场景栈
259
+ if (UIAdapter.sceneStack.length > 0) {
260
+ let prevScene = UIAdapter.sceneStack.pop();
261
+ cc.director.loadScene(prevScene);
262
+ return true;
263
+ }
264
+ UIAdapter.showExitWin();
265
+ return true;
266
+ }
267
+
268
+ static async showExitWin() {
269
+ let exitPfb = await Loader.loadRes('drres/prefab/ExitWin', cc.Prefab);
270
+ let exitWin = cc.instantiate(exitPfb);
271
+ exitWin.parent = cc.director.getScene();
272
+ exitWin.setPosition(cc.v2(cc.winSize.width / 2, cc.winSize.height / 2));
273
+
274
+ // 直接注册焦点,不依赖 ExitWin.onEnable 的间接调用
275
+ UIAdapter.focus.pushScope(exitWin.uuid, {
276
+ node: exitWin,
277
+ nodeType: "window",
278
+ onBack: () => {
279
+ if (exitWin && exitWin.isValid) exitWin.destroy();
280
+ },
281
+ skipEnsureFocus: true
282
+ });
283
+ UIAdapter.focus.registerButtons(exitWin);
284
+ UIAdapter.findBtnExtra(exitWin);
285
+ }
286
+
287
+ /** 拦截 loadScene 自动记录场景栈 */
288
+ static hookLoadScene() {
289
+ const origLoadScene = cc.director.loadScene.bind(cc.director);
290
+ cc.director.loadScene = (sceneName: string, onLaunched?: () => void) => {
291
+ let currentScene = cc.director.getScene();
292
+ if (currentScene && currentScene.name && currentScene.name !== sceneName) {
293
+ UIAdapter.sceneStack.push(currentScene.name);
294
+ }
295
+ return origLoadScene(sceneName, onLaunched);
296
+ };
297
+ }
298
+
299
+ private static findBtnExtra(node: cc.Node) {
300
+ for (let i = 0; i < node.children.length; i++) {
301
+ let child = node.children[i];
302
+ if (child.isValid === false || !child.activeInHierarchy) continue;
303
+ let btnExtra = child.getComponent(BtnExtra);
304
+ if (btnExtra) {
305
+ let sprite = child.getComponent(cc.Sprite);
306
+ UIAdapter.focus.register(child, {
307
+ onFocus: () => {
308
+ if (sprite) sprite.spriteFrame = btnExtra.hoverSprite;
309
+ },
310
+ onBlur: () => {
311
+ if (sprite) sprite.spriteFrame = btnExtra.normalSprite;
312
+ }
313
+ });
314
+ }
315
+ UIAdapter.findBtnExtra(child);
316
+ }
317
+ }
318
+
319
+ // ========================================================================
320
+ // 内部
321
+ // ========================================================================
322
+ private static onGameHide() { AdSdk.onGamePause(); }
323
+ private static onGameShow() { AdSdk.onGameResume(); }
324
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "2e980965-399c-4317-864f-ced28d145d56",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -32,4 +32,4 @@ export class WebBridge {
32
32
  );
33
33
  });
34
34
  }
35
- }
35
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "ef45d0d0-e42e-4d20-bd1e-75ca432f38e5",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -1,3 +1,9 @@
1
+
2
+ if (typeof globalThis === 'undefined') {
3
+ if (typeof self !== 'undefined') self.globalThis = self;
4
+ else if (typeof window !== 'undefined') window.globalThis = window;
5
+ else if (typeof global !== 'undefined') global.globalThis = global;
6
+ }
1
7
  var supersetLewo = (function () {
2
8
  // ========== 私有常量与缓存(闭包私有,外部不可访问) ==========
3
9
  // 设备ID本地存储Key:localStorage + cookie共用
@@ -4,6 +4,7 @@
4
4
 
5
5
  /** 广告平台标识 */
6
6
  export declare enum AdPlatform {
7
+ None = 'none',
7
8
  Xiaomi = 'xiaomi',
8
9
  }
9
10
 
@@ -0,0 +1,13 @@
1
+ {
2
+ "ver": "1.1.3",
3
+ "uuid": "822091a4-f8de-4991-957f-1506ddb6e4e6",
4
+ "importer": "folder",
5
+ "isBundle": false,
6
+ "bundleName": "",
7
+ "priority": 1,
8
+ "compressionType": {},
9
+ "optimizeHotUpdate": {},
10
+ "inlineSpriteFrames": {},
11
+ "isRemoteBundle": {},
12
+ "subMetas": {}
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "ver": "1.1.3",
3
+ "uuid": "5d7eb661-f97d-4152-bce2-5dc55e4d8cbc",
4
+ "importer": "folder",
5
+ "isBundle": false,
6
+ "bundleName": "",
7
+ "priority": 1,
8
+ "compressionType": {},
9
+ "optimizeHotUpdate": {},
10
+ "inlineSpriteFrames": {},
11
+ "isRemoteBundle": {},
12
+ "subMetas": {}
13
+ }
@@ -0,0 +1,25 @@
1
+ const { ccclass, property } = cc._decorator;
2
+
3
+ @ccclass
4
+ export default class AlertTip extends cc.Component {
5
+ @property(cc.Label)
6
+ label: cc.Label = null;
7
+
8
+ onLoad() {
9
+ }
10
+
11
+ start() {
12
+
13
+ }
14
+
15
+ hide(callback): any {
16
+ this.node.active = false;
17
+ if (callback) {
18
+ callback(this);
19
+ }
20
+ }
21
+ show(text: any): any {
22
+ this.label.string = text;
23
+ }
24
+ // update (dt) {}
25
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "65f372f8-066d-4823-a123-fc44d814d552",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -0,0 +1,17 @@
1
+
2
+ const { ccclass, property } = cc._decorator;
3
+
4
+ @ccclass('BtnExtra')
5
+ export class BtnExtra extends cc.Component {
6
+ @property({
7
+ type: cc.SpriteFrame,
8
+ tooltip: '悬停状态图片'
9
+ })
10
+ hoverSprite: cc.SpriteFrame = null;
11
+
12
+ @property({
13
+ type: cc.SpriteFrame,
14
+ tooltip: '普通状态图片'
15
+ })
16
+ normalSprite: cc.SpriteFrame = null;
17
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "465def42-c4ec-48ba-aa25-d6f46f1839d8",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -1,5 +1,6 @@
1
- import TvUi from "./core/TvUi";
2
- import { PlatformAdapter } from "./PlatformAdapter";
1
+ import { AdSdk } from "../ad-sdk/ad-sdk";
2
+ import { PlatformAdapter } from "../PlatformAdapter";
3
+
3
4
 
4
5
  const { ccclass, property } = cc._decorator;
5
6
 
@@ -20,17 +21,14 @@ export default class ExitWin extends cc.Component {
20
21
  }
21
22
 
22
23
  private onClickExit() {
23
- if (TvUi.api.hasBridge()) {
24
- TvUi.api.onExitGame();
24
+ if (PlatformAdapter.isWebBridge) {
25
+ PlatformAdapter.webBridge.callHandler("router/navigateBack", {}, (a) => { cc.log(a); });
25
26
  return;
26
27
  }
28
+ if (AdSdk.exitGame) AdSdk.exitGame();
27
29
  cc.game.end();
28
30
  }
29
31
 
30
- onEnable() {
31
- PlatformAdapter.showWindow(this.node);
32
- }
33
-
34
32
  onDisable() {
35
33
  PlatformAdapter.hideWindow(this.node);
36
34
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "624c44a1-c1da-408e-a890-edb9221fe19a",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -1,7 +1,6 @@
1
- import { AdSdk, KeyAction, KeyCode } from "./ad-sdk/ad-sdk";
2
- import TvUi from "./core/TvUi";
3
- import { Loader } from "./Loader";
4
- import { PlatformAdapter } from "./PlatformAdapter";
1
+ import { Loader } from "../Loader";
2
+ import { PlatformAdapter } from "../PlatformAdapter";
3
+
5
4
 
6
5
  const { ccclass, property } = cc._decorator;
7
6
 
@@ -23,32 +22,19 @@ export default class HelperWin extends cc.Component {
23
22
  this.spine = this.node.getChildByName("skeleton").getComponent(sp.Skeleton);
24
23
  this.spine.skeletonData = spData;
25
24
  this.spine.setAnimation(0, 'animation', false);
26
- AdSdk.onKeyEvent((e) => {
27
- var isDown = e.action === KeyAction.Down;
28
-
29
- if (isDown) {
30
- switch (e.key) {
31
- case KeyCode.Back:
32
- this.node.active = false;
33
- cb && cb();
34
- break;
35
- }
36
- }
37
- });
25
+
38
26
  this.nativeBackHandler = () => {
39
27
  this.node.destroy();
40
28
  cb && cb();
41
29
  return true;
42
30
  };
43
- TvUi.back.push(this.nativeBackHandler);
31
+ PlatformAdapter.showWindow(this.node, this.nativeBackHandler.bind(this));
44
32
  }
45
33
 
46
34
  onEnable() {
47
- PlatformAdapter.showWindow(this.node);
48
35
  }
49
36
 
50
37
  onDisable() {
51
- TvUi.back.remove(this.nativeBackHandler);
52
38
  PlatformAdapter.hideWindow(this.node);
53
39
  }
54
40
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "7f86b204-659d-4805-afee-1c744576f395",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "ver": "1.1.3",
3
+ "uuid": "ebf483ee-a05a-4236-a427-ec0233afbaeb",
4
+ "importer": "folder",
5
+ "isBundle": false,
6
+ "bundleName": "",
7
+ "priority": 1,
8
+ "compressionType": {},
9
+ "optimizeHotUpdate": {},
10
+ "inlineSpriteFrames": {},
11
+ "isRemoteBundle": {},
12
+ "subMetas": {}
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "ver": "1.1.3",
3
+ "uuid": "d7df01a4-7914-4cbd-82cb-c7b63441647b",
4
+ "importer": "folder",
5
+ "isBundle": false,
6
+ "bundleName": "",
7
+ "priority": 1,
8
+ "compressionType": {},
9
+ "optimizeHotUpdate": {},
10
+ "inlineSpriteFrames": {},
11
+ "isRemoteBundle": {},
12
+ "subMetas": {}
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "ver": "1.1.3",
3
+ "uuid": "645ceb69-7018-4c79-abb5-475f2521d8ad",
4
+ "importer": "folder",
5
+ "isBundle": false,
6
+ "bundleName": "",
7
+ "priority": 1,
8
+ "compressionType": {},
9
+ "optimizeHotUpdate": {},
10
+ "inlineSpriteFrames": {},
11
+ "isRemoteBundle": {},
12
+ "subMetas": {}
13
+ }
@@ -4,27 +4,9 @@ const { ccclass, property } = cc._decorator;
4
4
 
5
5
  @ccclass
6
6
  export default class FocusItem extends cc.Component {
7
- @property
8
- focusId: string = "";
9
-
10
7
  @property
11
8
  scopeId: string = "";
12
9
 
13
- @property
14
- iconKey: string = "";
15
-
16
- @property
17
- up: string = "";
18
-
19
- @property
20
- down: string = "";
21
-
22
- @property
23
- left: string = "";
24
-
25
- @property
26
- right: string = "";
27
-
28
10
  @property
29
11
  focusScale: number = 1.08;
30
12
 
@@ -54,4 +36,4 @@ export default class FocusItem extends cc.Component {
54
36
  this.node.emit(cc.Node.EventType.TOUCH_END, event);
55
37
  }
56
38
  }
57
- }
39
+ }