drgame-cc 1.0.13 → 1.0.14
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.
- package/bin/drgame.d.ts +632 -0
- package/bin/drgame.js +3010 -0
- package/package.json +3 -2
package/bin/drgame.js
ADDED
|
@@ -0,0 +1,3010 @@
|
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
+
extendStatics(d, b);
|
|
12
|
+
function __() { this.constructor = d; }
|
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
17
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
18
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
19
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
20
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
21
|
+
};
|
|
22
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
23
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
36
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
|
+
function step(op) {
|
|
39
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
41
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
42
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
|
+
switch (op[0]) {
|
|
44
|
+
case 0: case 1: t = op; break;
|
|
45
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
46
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
47
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
48
|
+
default:
|
|
49
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
+
if (t[2]) _.ops.pop();
|
|
54
|
+
_.trys.pop(); continue;
|
|
55
|
+
}
|
|
56
|
+
op = body.call(thisArg, _);
|
|
57
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
define("BtnExtra", ["require", "exports"], function (require, exports) {
|
|
62
|
+
"use strict";
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|
65
|
+
var BtnExtra = (function (_super) {
|
|
66
|
+
__extends(BtnExtra, _super);
|
|
67
|
+
function BtnExtra() {
|
|
68
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
69
|
+
_this.hoverSprite = null;
|
|
70
|
+
_this.normalSprite = null;
|
|
71
|
+
return _this;
|
|
72
|
+
}
|
|
73
|
+
__decorate([
|
|
74
|
+
property(cc.SpriteFrame),
|
|
75
|
+
__metadata("design:type", cc.SpriteFrame)
|
|
76
|
+
], BtnExtra.prototype, "hoverSprite", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
property(cc.SpriteFrame),
|
|
79
|
+
__metadata("design:type", cc.SpriteFrame)
|
|
80
|
+
], BtnExtra.prototype, "normalSprite", void 0);
|
|
81
|
+
BtnExtra = __decorate([
|
|
82
|
+
ccclass('BtnExtra')
|
|
83
|
+
], BtnExtra);
|
|
84
|
+
return BtnExtra;
|
|
85
|
+
}(cc.Component));
|
|
86
|
+
exports.default = BtnExtra;
|
|
87
|
+
});
|
|
88
|
+
define("Define", ["require", "exports"], function (require, exports) {
|
|
89
|
+
"use strict";
|
|
90
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
91
|
+
exports.EVideoScene = void 0;
|
|
92
|
+
var EVideoScene;
|
|
93
|
+
(function (EVideoScene) {
|
|
94
|
+
EVideoScene["UseProp"] = "use_prop";
|
|
95
|
+
EVideoScene["StartGame"] = "start_game";
|
|
96
|
+
EVideoScene["RevivePop"] = "revive_pop";
|
|
97
|
+
EVideoScene["BuySkin"] = "buy_skin";
|
|
98
|
+
EVideoScene["BuyProp"] = "buy_prop";
|
|
99
|
+
EVideoScene["GameOver"] = "game_over";
|
|
100
|
+
EVideoScene["LevelComplete"] = "level_complete";
|
|
101
|
+
EVideoScene["Shop"] = "shop";
|
|
102
|
+
EVideoScene["DailyReward"] = "daily_reward";
|
|
103
|
+
EVideoScene["Boost"] = "boost";
|
|
104
|
+
})(EVideoScene || (exports.EVideoScene = EVideoScene = {}));
|
|
105
|
+
});
|
|
106
|
+
define("config/TvUiConfig", ["require", "exports"], function (require, exports) {
|
|
107
|
+
"use strict";
|
|
108
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
109
|
+
exports.createDefaultTvUiConfig = createDefaultTvUiConfig;
|
|
110
|
+
function createDefaultTvUiConfig() {
|
|
111
|
+
return {
|
|
112
|
+
designWidth: 1920,
|
|
113
|
+
designHeight: 1080,
|
|
114
|
+
cpId: "ppl",
|
|
115
|
+
version: "1.0.0",
|
|
116
|
+
configPath: "tvui/config/default",
|
|
117
|
+
defaultScopeId: "page",
|
|
118
|
+
enableRemoteInput: true,
|
|
119
|
+
enableLifecycle: true,
|
|
120
|
+
focus: {
|
|
121
|
+
enabled: true,
|
|
122
|
+
frameEnabled: false,
|
|
123
|
+
framePadding: 10,
|
|
124
|
+
frameColor: "#ffd451",
|
|
125
|
+
frameOpacity: 230,
|
|
126
|
+
lineWidth: 5,
|
|
127
|
+
animationTime: 0.1,
|
|
128
|
+
defaultIconKey: "default",
|
|
129
|
+
iconPlacement: "bottomRight",
|
|
130
|
+
iconOffsetX: -20,
|
|
131
|
+
iconOffsetY: 20,
|
|
132
|
+
zIndex: 800
|
|
133
|
+
},
|
|
134
|
+
icons: {
|
|
135
|
+
"default": {
|
|
136
|
+
path: "tvui/icons/pointer-yellow-60",
|
|
137
|
+
width: 60,
|
|
138
|
+
height: 60,
|
|
139
|
+
offsetX: -20,
|
|
140
|
+
offsetY: 20
|
|
141
|
+
},
|
|
142
|
+
"yellow": {
|
|
143
|
+
path: "tvui/icons/pointer-yellow-60",
|
|
144
|
+
width: 60,
|
|
145
|
+
height: 60,
|
|
146
|
+
offsetX: -20,
|
|
147
|
+
offsetY: 20
|
|
148
|
+
},
|
|
149
|
+
"blue": {
|
|
150
|
+
path: "tvui/icons/pointer-blue-60",
|
|
151
|
+
width: 60,
|
|
152
|
+
height: 60,
|
|
153
|
+
offsetX: -20,
|
|
154
|
+
offsetY: 20
|
|
155
|
+
},
|
|
156
|
+
"pink": {
|
|
157
|
+
path: "tvui/icons/pointer-pink-60",
|
|
158
|
+
width: 60,
|
|
159
|
+
height: 60,
|
|
160
|
+
offsetX: -20,
|
|
161
|
+
offsetY: 20
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
adSdk: {
|
|
165
|
+
platform: "xiaomi"
|
|
166
|
+
},
|
|
167
|
+
ads: {
|
|
168
|
+
"reward": {
|
|
169
|
+
enabled: true,
|
|
170
|
+
mode: "reward",
|
|
171
|
+
channels: [
|
|
172
|
+
{ type: "aggregate", priority: 1, reward_type: "reward" },
|
|
173
|
+
{ type: "mock", priority: 100 }
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
"popup": {
|
|
177
|
+
enabled: true,
|
|
178
|
+
mode: "popup",
|
|
179
|
+
channels: [
|
|
180
|
+
{ type: "aggregate", priority: 1 },
|
|
181
|
+
{ type: "mock", priority: 100 }
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
"game": {
|
|
185
|
+
enabled: true,
|
|
186
|
+
mode: "popup",
|
|
187
|
+
channels: [
|
|
188
|
+
{ type: "aggregate", priority: 1 },
|
|
189
|
+
{ type: "mock", priority: 100 }
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
define("config/TvUiConfigManager", ["require", "exports", "config/TvUiConfig"], function (require, exports, TvUiConfig_1) {
|
|
197
|
+
"use strict";
|
|
198
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
199
|
+
var TvUiConfigManager = (function () {
|
|
200
|
+
function TvUiConfigManager() {
|
|
201
|
+
}
|
|
202
|
+
TvUiConfigManager.init = function (config, callback) {
|
|
203
|
+
var _this = this;
|
|
204
|
+
this.projectConfig = config || {};
|
|
205
|
+
this.rebuildConfig();
|
|
206
|
+
this.loadResourceConfig(function (loaded) {
|
|
207
|
+
if (loaded) {
|
|
208
|
+
_this.rebuildConfig();
|
|
209
|
+
_this.emitChanged();
|
|
210
|
+
}
|
|
211
|
+
if (callback)
|
|
212
|
+
callback(_this.config);
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
TvUiConfigManager.getConfig = function () {
|
|
216
|
+
return this.config;
|
|
217
|
+
};
|
|
218
|
+
TvUiConfigManager.updateConfig = function (config, saveLocal) {
|
|
219
|
+
if (saveLocal === void 0) { saveLocal = false; }
|
|
220
|
+
if (saveLocal) {
|
|
221
|
+
this.saveLocalConfig(config);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
this.projectConfig = this.merge(this.projectConfig || {}, config || {});
|
|
225
|
+
}
|
|
226
|
+
this.rebuildConfig();
|
|
227
|
+
this.emitChanged();
|
|
228
|
+
};
|
|
229
|
+
TvUiConfigManager.onChanged = function (listener) {
|
|
230
|
+
if (!listener)
|
|
231
|
+
return;
|
|
232
|
+
if (this.listeners.indexOf(listener) < 0)
|
|
233
|
+
this.listeners.push(listener);
|
|
234
|
+
};
|
|
235
|
+
TvUiConfigManager.offChanged = function (listener) {
|
|
236
|
+
var index = this.listeners.indexOf(listener);
|
|
237
|
+
if (index >= 0)
|
|
238
|
+
this.listeners.splice(index, 1);
|
|
239
|
+
};
|
|
240
|
+
TvUiConfigManager.rebuildConfig = function () {
|
|
241
|
+
var next = this.merge((0, TvUiConfig_1.createDefaultTvUiConfig)(), this.resourceConfig || {});
|
|
242
|
+
next = this.merge(next, this.projectConfig || {});
|
|
243
|
+
next = this.merge(next, this.loadLocalConfig());
|
|
244
|
+
this.config = next;
|
|
245
|
+
};
|
|
246
|
+
TvUiConfigManager.loadResourceConfig = function (callback) {
|
|
247
|
+
var _this = this;
|
|
248
|
+
var path = (this.projectConfig && this.projectConfig.configPath) || this.config.configPath;
|
|
249
|
+
if (!path || !cc || !cc.loader || !cc.loader.loadRes) {
|
|
250
|
+
callback(false);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
cc.loader.loadRes(path, function (error, asset) {
|
|
254
|
+
if (error || !asset) {
|
|
255
|
+
callback(false);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
var json = asset.json || asset;
|
|
259
|
+
_this.resourceConfig = json || null;
|
|
260
|
+
callback(!!_this.resourceConfig);
|
|
261
|
+
});
|
|
262
|
+
};
|
|
263
|
+
TvUiConfigManager.loadLocalConfig = function () {
|
|
264
|
+
try {
|
|
265
|
+
var raw = cc.sys.localStorage.getItem(this.LOCAL_KEY);
|
|
266
|
+
if (!raw)
|
|
267
|
+
return {};
|
|
268
|
+
return JSON.parse(raw) || {};
|
|
269
|
+
}
|
|
270
|
+
catch (e) {
|
|
271
|
+
return {};
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
TvUiConfigManager.saveLocalConfig = function (config) {
|
|
275
|
+
var local = this.merge(this.loadLocalConfig(), config || {});
|
|
276
|
+
try {
|
|
277
|
+
cc.sys.localStorage.setItem(this.LOCAL_KEY, JSON.stringify(local));
|
|
278
|
+
}
|
|
279
|
+
catch (e) {
|
|
280
|
+
console.warn("[TvUiConfigManager] save local config failed", e);
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
TvUiConfigManager.emitChanged = function () {
|
|
284
|
+
for (var i = 0; i < this.listeners.length; i++) {
|
|
285
|
+
this.listeners[i](this.config);
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
TvUiConfigManager.merge = function (base, extra) {
|
|
289
|
+
var result = {};
|
|
290
|
+
var key;
|
|
291
|
+
base = base || {};
|
|
292
|
+
extra = extra || {};
|
|
293
|
+
for (key in base) {
|
|
294
|
+
if (!base.hasOwnProperty(key))
|
|
295
|
+
continue;
|
|
296
|
+
result[key] = this.clone(base[key]);
|
|
297
|
+
}
|
|
298
|
+
for (key in extra) {
|
|
299
|
+
if (!extra.hasOwnProperty(key))
|
|
300
|
+
continue;
|
|
301
|
+
if (this.isPlainObject(result[key]) && this.isPlainObject(extra[key])) {
|
|
302
|
+
result[key] = this.merge(result[key], extra[key]);
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
result[key] = this.clone(extra[key]);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return result;
|
|
309
|
+
};
|
|
310
|
+
TvUiConfigManager.clone = function (value) {
|
|
311
|
+
if (value instanceof Array) {
|
|
312
|
+
var list = [];
|
|
313
|
+
for (var i = 0; i < value.length; i++)
|
|
314
|
+
list.push(this.clone(value[i]));
|
|
315
|
+
return list;
|
|
316
|
+
}
|
|
317
|
+
if (this.isPlainObject(value)) {
|
|
318
|
+
return this.merge({}, value);
|
|
319
|
+
}
|
|
320
|
+
return value;
|
|
321
|
+
};
|
|
322
|
+
TvUiConfigManager.isPlainObject = function (value) {
|
|
323
|
+
return value && typeof value == "object" && !(value instanceof Array);
|
|
324
|
+
};
|
|
325
|
+
TvUiConfigManager.LOCAL_KEY = "tvui_local_config";
|
|
326
|
+
TvUiConfigManager.config = (0, TvUiConfig_1.createDefaultTvUiConfig)();
|
|
327
|
+
TvUiConfigManager.projectConfig = null;
|
|
328
|
+
TvUiConfigManager.resourceConfig = null;
|
|
329
|
+
TvUiConfigManager.listeners = [];
|
|
330
|
+
return TvUiConfigManager;
|
|
331
|
+
}());
|
|
332
|
+
exports.default = TvUiConfigManager;
|
|
333
|
+
});
|
|
334
|
+
define("input/KeyCodeAdapter", ["require", "exports"], function (require, exports) {
|
|
335
|
+
"use strict";
|
|
336
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
337
|
+
exports.TvRemoteKey = void 0;
|
|
338
|
+
var TvRemoteKey;
|
|
339
|
+
(function (TvRemoteKey) {
|
|
340
|
+
TvRemoteKey["Back"] = "back";
|
|
341
|
+
TvRemoteKey["Ok"] = "ok";
|
|
342
|
+
TvRemoteKey["Left"] = "left";
|
|
343
|
+
TvRemoteKey["Right"] = "right";
|
|
344
|
+
TvRemoteKey["Up"] = "up";
|
|
345
|
+
TvRemoteKey["Down"] = "down";
|
|
346
|
+
TvRemoteKey["Pause"] = "pause";
|
|
347
|
+
TvRemoteKey["Unknown"] = "unknown";
|
|
348
|
+
})(TvRemoteKey || (exports.TvRemoteKey = TvRemoteKey = {}));
|
|
349
|
+
var KeyCodeAdapter = (function () {
|
|
350
|
+
function KeyCodeAdapter() {
|
|
351
|
+
}
|
|
352
|
+
KeyCodeAdapter.toRemoteKey = function (keyCode) {
|
|
353
|
+
if ([0, 4, 8, 27, 10009].indexOf(keyCode) >= 0)
|
|
354
|
+
return TvRemoteKey.Back;
|
|
355
|
+
if ([13, 23, 66].indexOf(keyCode) >= 0)
|
|
356
|
+
return TvRemoteKey.Ok;
|
|
357
|
+
if ([80].indexOf(keyCode) >= 0)
|
|
358
|
+
return TvRemoteKey.Pause;
|
|
359
|
+
if ([21, 37].indexOf(keyCode) >= 0)
|
|
360
|
+
return TvRemoteKey.Left;
|
|
361
|
+
if ([19, 38].indexOf(keyCode) >= 0)
|
|
362
|
+
return TvRemoteKey.Up;
|
|
363
|
+
if ([22, 39].indexOf(keyCode) >= 0)
|
|
364
|
+
return TvRemoteKey.Right;
|
|
365
|
+
if ([20, 40].indexOf(keyCode) >= 0)
|
|
366
|
+
return TvRemoteKey.Down;
|
|
367
|
+
return TvRemoteKey.Unknown;
|
|
368
|
+
};
|
|
369
|
+
return KeyCodeAdapter;
|
|
370
|
+
}());
|
|
371
|
+
exports.default = KeyCodeAdapter;
|
|
372
|
+
});
|
|
373
|
+
define("focus/FocusScope", ["require", "exports"], function (require, exports) {
|
|
374
|
+
"use strict";
|
|
375
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
376
|
+
var FocusScope = (function () {
|
|
377
|
+
function FocusScope(scopeId, root) {
|
|
378
|
+
this.lastFocusId = "";
|
|
379
|
+
this.scopeId = scopeId || "page";
|
|
380
|
+
this.root = root || null;
|
|
381
|
+
}
|
|
382
|
+
return FocusScope;
|
|
383
|
+
}());
|
|
384
|
+
exports.default = FocusScope;
|
|
385
|
+
});
|
|
386
|
+
define("focus/FocusManager", ["require", "exports", "input/KeyCodeAdapter", "focus/FocusScope"], function (require, exports, KeyCodeAdapter_1, FocusScope_1) {
|
|
387
|
+
"use strict";
|
|
388
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
389
|
+
var FocusManager = (function () {
|
|
390
|
+
function FocusManager() {
|
|
391
|
+
}
|
|
392
|
+
FocusManager.setCursor = function (options) {
|
|
393
|
+
this.cursorOptions = options;
|
|
394
|
+
};
|
|
395
|
+
FocusManager.getCursor = function () {
|
|
396
|
+
return this.cursorOptions;
|
|
397
|
+
};
|
|
398
|
+
FocusManager.register = function (target, options) {
|
|
399
|
+
if (options === void 0) { options = {}; }
|
|
400
|
+
var node = this.resolveNode(target);
|
|
401
|
+
if (!node)
|
|
402
|
+
return;
|
|
403
|
+
var component = this.resolveComponent(target, node);
|
|
404
|
+
var previousItem = this.findItemByNode(node);
|
|
405
|
+
var previousBaseScale = previousItem ? { x: previousItem.baseScaleX, y: previousItem.baseScaleY } : null;
|
|
406
|
+
this.unregister(node);
|
|
407
|
+
var focusId = options.focusId || (component && component.focusId) || node.uuid || this.createFocusId(node);
|
|
408
|
+
this.unregisterById(focusId);
|
|
409
|
+
var baseScale = this.getNodeBaseScale(node, previousBaseScale);
|
|
410
|
+
var item = {
|
|
411
|
+
node: node,
|
|
412
|
+
root: options.root,
|
|
413
|
+
scopeId: options.scopeId || (component && component.scopeId) || this.activeScopeId || "page",
|
|
414
|
+
focusId: focusId,
|
|
415
|
+
iconKey: options.iconKey || (component && component.iconKey) || "",
|
|
416
|
+
up: options.up || (component && component.up) || "",
|
|
417
|
+
down: options.down || (component && component.down) || "",
|
|
418
|
+
left: options.left || (component && component.left) || "",
|
|
419
|
+
right: options.right || (component && component.right) || "",
|
|
420
|
+
onClick: options.onClick,
|
|
421
|
+
onFocus: options.onFocus || (component && component.onFocus),
|
|
422
|
+
onBlur: options.onBlur || (component && component.onBlur),
|
|
423
|
+
component: component,
|
|
424
|
+
baseScaleX: baseScale.x,
|
|
425
|
+
baseScaleY: baseScale.y,
|
|
426
|
+
focusScale: options.focusScale || (component && component.focusScale) || 1.08,
|
|
427
|
+
showCursor: options.showCursor !== false
|
|
428
|
+
};
|
|
429
|
+
this.items.push(item);
|
|
430
|
+
this.itemMap[item.focusId] = item;
|
|
431
|
+
this.ensureFocus();
|
|
432
|
+
};
|
|
433
|
+
FocusManager.unregister = function (target) {
|
|
434
|
+
var node = this.resolveNode(target);
|
|
435
|
+
if (!node)
|
|
436
|
+
return;
|
|
437
|
+
for (var i = this.items.length - 1; i >= 0; i--) {
|
|
438
|
+
if (this.items[i].node == node) {
|
|
439
|
+
this.removeItemAt(i);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
this.ensureFocus();
|
|
443
|
+
};
|
|
444
|
+
FocusManager.unregisterByRoot = function (root) {
|
|
445
|
+
if (!root)
|
|
446
|
+
return;
|
|
447
|
+
for (var i = this.items.length - 1; i >= 0; i--) {
|
|
448
|
+
var item = this.items[i];
|
|
449
|
+
if (item.root == root || this.isChildOf(item.node, root)) {
|
|
450
|
+
this.removeItemAt(i);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
this.ensureFocus();
|
|
454
|
+
};
|
|
455
|
+
FocusManager.unregisterById = function (focusId) {
|
|
456
|
+
if (!focusId)
|
|
457
|
+
return;
|
|
458
|
+
for (var i = this.items.length - 1; i >= 0; i--) {
|
|
459
|
+
if (this.items[i].focusId == focusId)
|
|
460
|
+
this.removeItemAt(i);
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
FocusManager.registerButtons = function (root, options) {
|
|
464
|
+
var _this = this;
|
|
465
|
+
if (options === void 0) { options = {}; }
|
|
466
|
+
if (!root)
|
|
467
|
+
return;
|
|
468
|
+
this.unregisterByRoot(root);
|
|
469
|
+
this.walk(root, function (node) {
|
|
470
|
+
if (node instanceof cc.Scene)
|
|
471
|
+
return;
|
|
472
|
+
var button = node.getComponent(cc.Button);
|
|
473
|
+
if (!button)
|
|
474
|
+
return;
|
|
475
|
+
_this.register(node, {
|
|
476
|
+
root: root,
|
|
477
|
+
scopeId: options.scopeId || _this.activeScopeId,
|
|
478
|
+
iconKey: options.iconKey,
|
|
479
|
+
focusScale: options.focusScale || 1.08,
|
|
480
|
+
onClick: function () { return _this.invokeButton(button); }
|
|
481
|
+
});
|
|
482
|
+
});
|
|
483
|
+
this.ensureFocus();
|
|
484
|
+
};
|
|
485
|
+
FocusManager.pushScope = function (scopeId, root, firstFocus) {
|
|
486
|
+
scopeId = scopeId || "modal";
|
|
487
|
+
var currentScope = this.getActiveScope();
|
|
488
|
+
if (currentScope)
|
|
489
|
+
currentScope.lastFocusId = this.currentFocusId;
|
|
490
|
+
for (var i = 0; i < this.scopes.length; i++) {
|
|
491
|
+
if (this.scopes[i].scopeId == scopeId) {
|
|
492
|
+
this.scopes.splice(i, 1);
|
|
493
|
+
break;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
this.scopes.push(new FocusScope_1.default(scopeId, root));
|
|
497
|
+
this.activeScopeId = scopeId;
|
|
498
|
+
this.setFocusById("", true);
|
|
499
|
+
if (firstFocus)
|
|
500
|
+
this.focus(firstFocus);
|
|
501
|
+
this.ensureFocus();
|
|
502
|
+
};
|
|
503
|
+
FocusManager.popScope = function (scopeId) {
|
|
504
|
+
if (this.scopes.length <= 1)
|
|
505
|
+
return;
|
|
506
|
+
var target = scopeId || this.activeScopeId;
|
|
507
|
+
for (var i = this.scopes.length - 1; i >= 1; i--) {
|
|
508
|
+
if (this.scopes[i].scopeId == target) {
|
|
509
|
+
this.scopes.splice(i, 1);
|
|
510
|
+
break;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
var active = this.scopes[this.scopes.length - 1];
|
|
514
|
+
this.activeScopeId = active ? active.scopeId : "page";
|
|
515
|
+
var restored = active && active.lastFocusId ? this.focus(active.lastFocusId) : false;
|
|
516
|
+
if (!restored) {
|
|
517
|
+
this.setFocusById("", true);
|
|
518
|
+
this.ensureFocus();
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
FocusManager.reset = function () {
|
|
522
|
+
var old = this.getCurrentFocusItem();
|
|
523
|
+
if (old)
|
|
524
|
+
this.setFocusVisual(old, false, true);
|
|
525
|
+
this.items = [];
|
|
526
|
+
this.itemMap = {};
|
|
527
|
+
this.currentFocusId = "";
|
|
528
|
+
this.scopes = [new FocusScope_1.default("page")];
|
|
529
|
+
this.activeScopeId = "page";
|
|
530
|
+
this.emitFocusChanged(null, old);
|
|
531
|
+
};
|
|
532
|
+
FocusManager.focus = function (target) {
|
|
533
|
+
this.cleanup();
|
|
534
|
+
if (!target)
|
|
535
|
+
return false;
|
|
536
|
+
var item = null;
|
|
537
|
+
if (typeof target == "string") {
|
|
538
|
+
item = this.itemMap[target];
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
for (var i = 0; i < this.items.length; i++) {
|
|
542
|
+
if (this.items[i].node == target) {
|
|
543
|
+
item = this.items[i];
|
|
544
|
+
break;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
if (!item || !this.isItemActive(item) || !this.isInActiveScope(item))
|
|
549
|
+
return false;
|
|
550
|
+
this.setFocusById(item.focusId);
|
|
551
|
+
return true;
|
|
552
|
+
};
|
|
553
|
+
FocusManager.focusNode = function (node) {
|
|
554
|
+
return this.focus(node);
|
|
555
|
+
};
|
|
556
|
+
FocusManager.move = function (direction) {
|
|
557
|
+
this.cleanup();
|
|
558
|
+
var current = this.getCurrentFocusItem();
|
|
559
|
+
if (!current) {
|
|
560
|
+
this.ensureFocus();
|
|
561
|
+
return !!this.getCurrentFocusItem();
|
|
562
|
+
}
|
|
563
|
+
var explicitId = current[direction];
|
|
564
|
+
if (explicitId && this.focus(explicitId))
|
|
565
|
+
return true;
|
|
566
|
+
var vector = this.getDirectionVector(direction);
|
|
567
|
+
var currentCenter = this.getWorldCenter(current.node);
|
|
568
|
+
var best = null;
|
|
569
|
+
var bestScore = Number.MAX_VALUE;
|
|
570
|
+
for (var i = 0; i < this.items.length; i++) {
|
|
571
|
+
var item = this.items[i];
|
|
572
|
+
if (item == current || !this.isItemActive(item) || !this.isInActiveScope(item))
|
|
573
|
+
continue;
|
|
574
|
+
var center = this.getWorldCenter(item.node);
|
|
575
|
+
var dx = center.x - currentCenter.x;
|
|
576
|
+
var dy = center.y - currentCenter.y;
|
|
577
|
+
if (vector.x != 0 && dx * vector.x <= 8)
|
|
578
|
+
continue;
|
|
579
|
+
if (vector.y != 0 && dy * vector.y <= 8)
|
|
580
|
+
continue;
|
|
581
|
+
var primary = vector.x != 0 ? Math.abs(dx) : Math.abs(dy);
|
|
582
|
+
var secondary = vector.x != 0 ? Math.abs(dy) : Math.abs(dx);
|
|
583
|
+
var score = primary + secondary * 2;
|
|
584
|
+
if (score < bestScore) {
|
|
585
|
+
bestScore = score;
|
|
586
|
+
best = item;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
if (best) {
|
|
590
|
+
this.setFocusById(best.focusId);
|
|
591
|
+
return true;
|
|
592
|
+
}
|
|
593
|
+
return this.moveByOrder(direction == "left" || direction == "down" ? -1 : 1);
|
|
594
|
+
};
|
|
595
|
+
FocusManager.confirm = function () {
|
|
596
|
+
this.ensureFocus();
|
|
597
|
+
var item = this.getCurrentFocusItem();
|
|
598
|
+
if (!item)
|
|
599
|
+
return false;
|
|
600
|
+
if (item.onClick) {
|
|
601
|
+
item.onClick();
|
|
602
|
+
return true;
|
|
603
|
+
}
|
|
604
|
+
if (item.component && item.component.onConfirm) {
|
|
605
|
+
item.component.onConfirm();
|
|
606
|
+
return true;
|
|
607
|
+
}
|
|
608
|
+
this.invokeButton(item.node.getComponent(cc.Button));
|
|
609
|
+
return true;
|
|
610
|
+
};
|
|
611
|
+
FocusManager.back = function () {
|
|
612
|
+
return false;
|
|
613
|
+
};
|
|
614
|
+
FocusManager.handleKey = function (keyCode) {
|
|
615
|
+
var key = KeyCodeAdapter_1.default.toRemoteKey(keyCode);
|
|
616
|
+
if (key == KeyCodeAdapter_1.TvRemoteKey.Ok)
|
|
617
|
+
return this.confirm();
|
|
618
|
+
if (key == KeyCodeAdapter_1.TvRemoteKey.Left)
|
|
619
|
+
return this.move("left");
|
|
620
|
+
if (key == KeyCodeAdapter_1.TvRemoteKey.Right)
|
|
621
|
+
return this.move("right");
|
|
622
|
+
if (key == KeyCodeAdapter_1.TvRemoteKey.Up)
|
|
623
|
+
return this.move("up");
|
|
624
|
+
if (key == KeyCodeAdapter_1.TvRemoteKey.Down)
|
|
625
|
+
return this.move("down");
|
|
626
|
+
if (key == KeyCodeAdapter_1.TvRemoteKey.Back)
|
|
627
|
+
return this.back();
|
|
628
|
+
return false;
|
|
629
|
+
};
|
|
630
|
+
FocusManager.clickCurrent = function () {
|
|
631
|
+
return this.confirm();
|
|
632
|
+
};
|
|
633
|
+
FocusManager.getCurrentFocusItem = function () {
|
|
634
|
+
var item = this.itemMap[this.currentFocusId];
|
|
635
|
+
return this.isItemActive(item) ? item : null;
|
|
636
|
+
};
|
|
637
|
+
FocusManager.getActiveScopeId = function () {
|
|
638
|
+
return this.activeScopeId;
|
|
639
|
+
};
|
|
640
|
+
FocusManager.onFocusChanged = function (listener) {
|
|
641
|
+
if (!listener)
|
|
642
|
+
return;
|
|
643
|
+
if (this.listeners.indexOf(listener) < 0)
|
|
644
|
+
this.listeners.push(listener);
|
|
645
|
+
};
|
|
646
|
+
FocusManager.offFocusChanged = function (listener) {
|
|
647
|
+
var index = this.listeners.indexOf(listener);
|
|
648
|
+
if (index >= 0)
|
|
649
|
+
this.listeners.splice(index, 1);
|
|
650
|
+
};
|
|
651
|
+
FocusManager.setFocusById = function (focusId, silent) {
|
|
652
|
+
if (silent === void 0) { silent = false; }
|
|
653
|
+
if (focusId == this.currentFocusId && focusId) {
|
|
654
|
+
var current_1 = this.getCurrentFocusItem();
|
|
655
|
+
if (current_1 && !silent) {
|
|
656
|
+
this.setFocusVisual(current_1, true);
|
|
657
|
+
this.emitFocusChanged(current_1, current_1);
|
|
658
|
+
}
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
var previous = this.getCurrentFocusItem();
|
|
662
|
+
if (previous)
|
|
663
|
+
this.setFocusVisual(previous, false);
|
|
664
|
+
this.currentFocusId = focusId || "";
|
|
665
|
+
var current = this.getCurrentFocusItem();
|
|
666
|
+
if (current) {
|
|
667
|
+
var scope = this.getActiveScope();
|
|
668
|
+
if (scope)
|
|
669
|
+
scope.lastFocusId = current.focusId;
|
|
670
|
+
this.setFocusVisual(current, true);
|
|
671
|
+
}
|
|
672
|
+
if (!silent)
|
|
673
|
+
this.emitFocusChanged(current, previous);
|
|
674
|
+
if (silent && previous)
|
|
675
|
+
this.emitFocusChanged(null, previous);
|
|
676
|
+
};
|
|
677
|
+
FocusManager.setFocusVisual = function (item, focused, immediate) {
|
|
678
|
+
if (immediate === void 0) { immediate = false; }
|
|
679
|
+
if (!item || !item.node || !item.node.isValid)
|
|
680
|
+
return;
|
|
681
|
+
this.setButtonSpriteVisual(item, focused);
|
|
682
|
+
item.node.stopActionByTag(this.FOCUS_SCALE_ACTION_TAG);
|
|
683
|
+
var targetScaleX = focused ? item.baseScaleX * item.focusScale : item.baseScaleX;
|
|
684
|
+
var targetScaleY = focused ? item.baseScaleY * item.focusScale : item.baseScaleY;
|
|
685
|
+
if (immediate) {
|
|
686
|
+
item.node.setScale(targetScaleX, targetScaleY);
|
|
687
|
+
}
|
|
688
|
+
else {
|
|
689
|
+
var action = cc.scaleTo(0.08, targetScaleX, targetScaleY);
|
|
690
|
+
action.setTag(this.FOCUS_SCALE_ACTION_TAG);
|
|
691
|
+
item.node.runAction(action);
|
|
692
|
+
}
|
|
693
|
+
if (focused && item.onFocus)
|
|
694
|
+
item.onFocus.call(item.component || item.node);
|
|
695
|
+
if (!focused && item.onBlur)
|
|
696
|
+
item.onBlur.call(item.component || item.node);
|
|
697
|
+
};
|
|
698
|
+
FocusManager.setButtonSpriteVisual = function (item, focused) {
|
|
699
|
+
var button = item.node.getComponent(cc.Button);
|
|
700
|
+
if (!button || button.transition != cc.Button.Transition.SPRITE)
|
|
701
|
+
return;
|
|
702
|
+
var target = button.target || button.node;
|
|
703
|
+
if (!target || !target.isValid)
|
|
704
|
+
return;
|
|
705
|
+
var sprite = target.getComponent(cc.Sprite);
|
|
706
|
+
if (!sprite)
|
|
707
|
+
return;
|
|
708
|
+
var spriteFrame = focused ? (button.hoverSprite || button.pressedSprite) : button.normalSprite;
|
|
709
|
+
if (spriteFrame)
|
|
710
|
+
sprite.spriteFrame = spriteFrame;
|
|
711
|
+
};
|
|
712
|
+
FocusManager.ensureFocus = function () {
|
|
713
|
+
this.cleanup();
|
|
714
|
+
if (this.getCurrentFocusItem())
|
|
715
|
+
return;
|
|
716
|
+
var activeScope = this.getActiveScope();
|
|
717
|
+
if (activeScope && activeScope.lastFocusId && this.focus(activeScope.lastFocusId))
|
|
718
|
+
return;
|
|
719
|
+
for (var i = 0; i < this.items.length; i++) {
|
|
720
|
+
var item = this.items[i];
|
|
721
|
+
if (this.isItemActive(item) && this.isInActiveScope(item)) {
|
|
722
|
+
this.setFocusById(item.focusId);
|
|
723
|
+
return;
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
};
|
|
727
|
+
FocusManager.moveByOrder = function (step) {
|
|
728
|
+
var activeItems = [];
|
|
729
|
+
for (var i = 0; i < this.items.length; i++) {
|
|
730
|
+
if (this.isItemActive(this.items[i]) && this.isInActiveScope(this.items[i]))
|
|
731
|
+
activeItems.push(this.items[i]);
|
|
732
|
+
}
|
|
733
|
+
if (activeItems.length <= 0)
|
|
734
|
+
return false;
|
|
735
|
+
var index = 0;
|
|
736
|
+
for (var i = 0; i < activeItems.length; i++) {
|
|
737
|
+
if (activeItems[i].focusId == this.currentFocusId) {
|
|
738
|
+
index = i;
|
|
739
|
+
break;
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
var next = (index + step + activeItems.length) % activeItems.length;
|
|
743
|
+
this.setFocusById(activeItems[next].focusId);
|
|
744
|
+
return true;
|
|
745
|
+
};
|
|
746
|
+
FocusManager.removeItemAt = function (index) {
|
|
747
|
+
var item = this.items[index];
|
|
748
|
+
if (!item)
|
|
749
|
+
return;
|
|
750
|
+
this.setFocusVisual(item, false, true);
|
|
751
|
+
delete this.itemMap[item.focusId];
|
|
752
|
+
this.items.splice(index, 1);
|
|
753
|
+
if (this.currentFocusId == item.focusId) {
|
|
754
|
+
this.currentFocusId = "";
|
|
755
|
+
this.emitFocusChanged(null, item);
|
|
756
|
+
}
|
|
757
|
+
};
|
|
758
|
+
FocusManager.cleanup = function () {
|
|
759
|
+
for (var i = this.items.length - 1; i >= 0; i--) {
|
|
760
|
+
var item = this.items[i];
|
|
761
|
+
if (!item.node || !item.node.isValid)
|
|
762
|
+
this.removeItemAt(i);
|
|
763
|
+
}
|
|
764
|
+
};
|
|
765
|
+
FocusManager.isItemActive = function (item) {
|
|
766
|
+
if (!item || !item.node || !item.node.isValid || !item.node.activeInHierarchy)
|
|
767
|
+
return false;
|
|
768
|
+
var button = item.node.getComponent(cc.Button);
|
|
769
|
+
return !button || button.interactable;
|
|
770
|
+
};
|
|
771
|
+
FocusManager.isInActiveScope = function (item) {
|
|
772
|
+
return !!item && item.scopeId == this.activeScopeId;
|
|
773
|
+
};
|
|
774
|
+
FocusManager.getActiveScope = function () {
|
|
775
|
+
for (var i = this.scopes.length - 1; i >= 0; i--) {
|
|
776
|
+
if (this.scopes[i].scopeId == this.activeScopeId)
|
|
777
|
+
return this.scopes[i];
|
|
778
|
+
}
|
|
779
|
+
return null;
|
|
780
|
+
};
|
|
781
|
+
FocusManager.getWorldCenter = function (node) {
|
|
782
|
+
var box = node.getBoundingBoxToWorld();
|
|
783
|
+
return cc.v2(box.x + box.width / 2, box.y + box.height / 2);
|
|
784
|
+
};
|
|
785
|
+
FocusManager.getDirectionVector = function (direction) {
|
|
786
|
+
if (direction == "left")
|
|
787
|
+
return cc.v2(-1, 0);
|
|
788
|
+
if (direction == "right")
|
|
789
|
+
return cc.v2(1, 0);
|
|
790
|
+
if (direction == "up")
|
|
791
|
+
return cc.v2(0, 1);
|
|
792
|
+
return cc.v2(0, -1);
|
|
793
|
+
};
|
|
794
|
+
FocusManager.invokeButton = function (button) {
|
|
795
|
+
if (!button || !button.node || !button.node.activeInHierarchy || !button.interactable)
|
|
796
|
+
return;
|
|
797
|
+
if (button.clickEvents && button.clickEvents.length > 0) {
|
|
798
|
+
cc.Component.EventHandler.emitEvents(button.clickEvents, null);
|
|
799
|
+
var event = new cc.Event.EventCustom(cc.Node.EventType.TOUCH_END, true);
|
|
800
|
+
button.node.emit(cc.Node.EventType.TOUCH_END, event);
|
|
801
|
+
}
|
|
802
|
+
else {
|
|
803
|
+
var event = new cc.Event.EventCustom(cc.Node.EventType.TOUCH_END, true);
|
|
804
|
+
button.node.emit(cc.Node.EventType.TOUCH_END, event);
|
|
805
|
+
}
|
|
806
|
+
};
|
|
807
|
+
FocusManager.emitFocusChanged = function (item, previous) {
|
|
808
|
+
for (var i = 0; i < this.listeners.length; i++) {
|
|
809
|
+
this.listeners[i](item, previous);
|
|
810
|
+
}
|
|
811
|
+
};
|
|
812
|
+
FocusManager.resolveNode = function (target) {
|
|
813
|
+
if (!target)
|
|
814
|
+
return null;
|
|
815
|
+
if (target instanceof cc.Node)
|
|
816
|
+
return target;
|
|
817
|
+
return target.node || null;
|
|
818
|
+
};
|
|
819
|
+
FocusManager.resolveComponent = function (target, node) {
|
|
820
|
+
if (!target || target instanceof cc.Node)
|
|
821
|
+
return node.getComponent("FocusItem");
|
|
822
|
+
return target;
|
|
823
|
+
};
|
|
824
|
+
FocusManager.findItemByNode = function (node) {
|
|
825
|
+
if (!node)
|
|
826
|
+
return null;
|
|
827
|
+
for (var i = 0; i < this.items.length; i++) {
|
|
828
|
+
if (this.items[i].node == node)
|
|
829
|
+
return this.items[i];
|
|
830
|
+
}
|
|
831
|
+
return null;
|
|
832
|
+
};
|
|
833
|
+
FocusManager.getNodeBaseScale = function (node, preferred) {
|
|
834
|
+
var nodeAny = node;
|
|
835
|
+
var storedX = nodeAny[this.BASE_SCALE_X_KEY];
|
|
836
|
+
var storedY = nodeAny[this.BASE_SCALE_Y_KEY];
|
|
837
|
+
if (this.isValidScale(storedX) && this.isValidScale(storedY)) {
|
|
838
|
+
return { x: storedX, y: storedY };
|
|
839
|
+
}
|
|
840
|
+
var baseScale = preferred || {
|
|
841
|
+
x: this.readScale(node, "scaleX"),
|
|
842
|
+
y: this.readScale(node, "scaleY")
|
|
843
|
+
};
|
|
844
|
+
nodeAny[this.BASE_SCALE_X_KEY] = baseScale.x;
|
|
845
|
+
nodeAny[this.BASE_SCALE_Y_KEY] = baseScale.y;
|
|
846
|
+
return baseScale;
|
|
847
|
+
};
|
|
848
|
+
FocusManager.readScale = function (node, key) {
|
|
849
|
+
var nodeAny = node;
|
|
850
|
+
var value = nodeAny[key];
|
|
851
|
+
if (this.isValidScale(value))
|
|
852
|
+
return value;
|
|
853
|
+
value = nodeAny.scale;
|
|
854
|
+
return this.isValidScale(value) ? value : 1;
|
|
855
|
+
};
|
|
856
|
+
FocusManager.isValidScale = function (value) {
|
|
857
|
+
return typeof value == "number" && isFinite(value);
|
|
858
|
+
};
|
|
859
|
+
FocusManager.createFocusId = function (node) {
|
|
860
|
+
return "focus_" + (node.name || "node") + "_" + this.items.length;
|
|
861
|
+
};
|
|
862
|
+
FocusManager.walk = function (node, visitor) {
|
|
863
|
+
visitor(node);
|
|
864
|
+
for (var i = 0; i < node.childrenCount; i++) {
|
|
865
|
+
this.walk(node.children[i], visitor);
|
|
866
|
+
}
|
|
867
|
+
};
|
|
868
|
+
FocusManager.isChildOf = function (node, root) {
|
|
869
|
+
var cur = node;
|
|
870
|
+
while (cur) {
|
|
871
|
+
if (cur == root)
|
|
872
|
+
return true;
|
|
873
|
+
cur = cur.parent;
|
|
874
|
+
}
|
|
875
|
+
return false;
|
|
876
|
+
};
|
|
877
|
+
FocusManager.FOCUS_SCALE_ACTION_TAG = 9911;
|
|
878
|
+
FocusManager.BASE_SCALE_X_KEY = "__tvFocusBaseScaleX";
|
|
879
|
+
FocusManager.BASE_SCALE_Y_KEY = "__tvFocusBaseScaleY";
|
|
880
|
+
FocusManager.items = [];
|
|
881
|
+
FocusManager.itemMap = {};
|
|
882
|
+
FocusManager.currentFocusId = "";
|
|
883
|
+
FocusManager.scopes = [new FocusScope_1.default("page")];
|
|
884
|
+
FocusManager.activeScopeId = "page";
|
|
885
|
+
FocusManager.listeners = [];
|
|
886
|
+
FocusManager.cursorOptions = null;
|
|
887
|
+
return FocusManager;
|
|
888
|
+
}());
|
|
889
|
+
exports.default = FocusManager;
|
|
890
|
+
});
|
|
891
|
+
define("icon/IconManager", ["require", "exports", "config/TvUiConfigManager"], function (require, exports, TvUiConfigManager_1) {
|
|
892
|
+
"use strict";
|
|
893
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
894
|
+
var IconManager = (function () {
|
|
895
|
+
function IconManager() {
|
|
896
|
+
}
|
|
897
|
+
IconManager.init = function () {
|
|
898
|
+
var _this = this;
|
|
899
|
+
if (this.inited)
|
|
900
|
+
return;
|
|
901
|
+
this.inited = true;
|
|
902
|
+
TvUiConfigManager_1.default.onChanged(function () {
|
|
903
|
+
_this.cache = {};
|
|
904
|
+
});
|
|
905
|
+
};
|
|
906
|
+
IconManager.getIconConfig = function (iconKey) {
|
|
907
|
+
var config = TvUiConfigManager_1.default.getConfig();
|
|
908
|
+
var key = iconKey || (config.focus && config.focus.defaultIconKey) || "default";
|
|
909
|
+
var icons = config.icons || {};
|
|
910
|
+
return icons[key] || icons["default"];
|
|
911
|
+
};
|
|
912
|
+
IconManager.getSpriteFrame = function (iconKey, callback) {
|
|
913
|
+
var iconConfig = this.getIconConfig(iconKey);
|
|
914
|
+
if (!iconConfig) {
|
|
915
|
+
callback(null, null);
|
|
916
|
+
return;
|
|
917
|
+
}
|
|
918
|
+
var cacheKey = iconConfig.url || iconConfig.path || iconKey || "default";
|
|
919
|
+
if (this.cache[cacheKey]) {
|
|
920
|
+
callback(this.cache[cacheKey], iconConfig);
|
|
921
|
+
return;
|
|
922
|
+
}
|
|
923
|
+
if (iconConfig.url) {
|
|
924
|
+
this.loadRemote(iconConfig, cacheKey, callback);
|
|
925
|
+
return;
|
|
926
|
+
}
|
|
927
|
+
this.loadLocal(iconConfig, cacheKey, callback);
|
|
928
|
+
};
|
|
929
|
+
IconManager.setIconTheme = function (iconKey) {
|
|
930
|
+
var config = TvUiConfigManager_1.default.getConfig();
|
|
931
|
+
if (!config.icons || !config.icons[iconKey])
|
|
932
|
+
return;
|
|
933
|
+
TvUiConfigManager_1.default.updateConfig({
|
|
934
|
+
focus: {
|
|
935
|
+
defaultIconKey: iconKey
|
|
936
|
+
}
|
|
937
|
+
}, true);
|
|
938
|
+
};
|
|
939
|
+
IconManager.clearCache = function () {
|
|
940
|
+
this.cache = {};
|
|
941
|
+
};
|
|
942
|
+
IconManager.loadLocal = function (iconConfig, cacheKey, callback) {
|
|
943
|
+
var _this = this;
|
|
944
|
+
if (!iconConfig.path) {
|
|
945
|
+
callback(null, iconConfig);
|
|
946
|
+
return;
|
|
947
|
+
}
|
|
948
|
+
cc.loader.loadRes(iconConfig.path, cc.SpriteFrame, function (error, frame) {
|
|
949
|
+
if (error || !frame) {
|
|
950
|
+
_this.loadFallback(cacheKey, callback);
|
|
951
|
+
return;
|
|
952
|
+
}
|
|
953
|
+
_this.cache[cacheKey] = frame;
|
|
954
|
+
callback(frame, iconConfig);
|
|
955
|
+
});
|
|
956
|
+
};
|
|
957
|
+
IconManager.loadRemote = function (iconConfig, cacheKey, callback) {
|
|
958
|
+
var _this = this;
|
|
959
|
+
var assetManager = cc.assetManager;
|
|
960
|
+
if (!assetManager || !assetManager.loadRemote) {
|
|
961
|
+
this.loadFallback(cacheKey, callback);
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
assetManager.loadRemote(iconConfig.url, { ext: ".png" }, function (error, texture) {
|
|
965
|
+
if (error || !texture) {
|
|
966
|
+
_this.loadFallback(cacheKey, callback);
|
|
967
|
+
return;
|
|
968
|
+
}
|
|
969
|
+
var frame = new cc.SpriteFrame(texture);
|
|
970
|
+
_this.cache[cacheKey] = frame;
|
|
971
|
+
callback(frame, iconConfig);
|
|
972
|
+
});
|
|
973
|
+
};
|
|
974
|
+
IconManager.loadFallback = function (cacheKey, callback) {
|
|
975
|
+
var fallback = this.getIconConfig("default");
|
|
976
|
+
if (!fallback || fallback.path == cacheKey) {
|
|
977
|
+
callback(null, fallback);
|
|
978
|
+
return;
|
|
979
|
+
}
|
|
980
|
+
this.loadLocal(fallback, fallback.path || "default", callback);
|
|
981
|
+
};
|
|
982
|
+
IconManager.cache = {};
|
|
983
|
+
IconManager.inited = false;
|
|
984
|
+
return IconManager;
|
|
985
|
+
}());
|
|
986
|
+
exports.default = IconManager;
|
|
987
|
+
});
|
|
988
|
+
define("focus/FocusVisualLayer", ["require", "exports", "config/TvUiConfigManager", "icon/IconManager", "focus/FocusManager"], function (require, exports, TvUiConfigManager_2, IconManager_1, FocusManager_1) {
|
|
989
|
+
"use strict";
|
|
990
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
991
|
+
var ccclass = cc._decorator.ccclass;
|
|
992
|
+
var FocusVisualLayer = (function (_super) {
|
|
993
|
+
__extends(FocusVisualLayer, _super);
|
|
994
|
+
function FocusVisualLayer() {
|
|
995
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
996
|
+
_this.graphics = null;
|
|
997
|
+
_this.iconNode = null;
|
|
998
|
+
_this.iconSprite = null;
|
|
999
|
+
_this.currentItem = null;
|
|
1000
|
+
_this.currentIconConfig = null;
|
|
1001
|
+
_this.inited = false;
|
|
1002
|
+
_this.onFocusChanged = function (item) {
|
|
1003
|
+
_this.refresh(item);
|
|
1004
|
+
};
|
|
1005
|
+
_this.onConfigChanged = function () {
|
|
1006
|
+
_this.node.zIndex = (TvUiConfigManager_2.default.getConfig().focus || {}).zIndex || 800;
|
|
1007
|
+
_this.refresh(_this.currentItem);
|
|
1008
|
+
};
|
|
1009
|
+
return _this;
|
|
1010
|
+
}
|
|
1011
|
+
FocusVisualLayer_1 = FocusVisualLayer;
|
|
1012
|
+
FocusVisualLayer.create = function (parent) {
|
|
1013
|
+
var node = parent.getChildByName("FocusVisualLayer");
|
|
1014
|
+
if (!node) {
|
|
1015
|
+
node = new cc.Node("FocusVisualLayer");
|
|
1016
|
+
parent.addChild(node, 800);
|
|
1017
|
+
}
|
|
1018
|
+
var layer = node.getComponent(FocusVisualLayer_1);
|
|
1019
|
+
if (!layer)
|
|
1020
|
+
layer = node.addComponent(FocusVisualLayer_1);
|
|
1021
|
+
layer.init();
|
|
1022
|
+
return layer;
|
|
1023
|
+
};
|
|
1024
|
+
FocusVisualLayer.prototype.onDestroy = function () {
|
|
1025
|
+
FocusManager_1.default.offFocusChanged(this.onFocusChanged);
|
|
1026
|
+
TvUiConfigManager_2.default.offChanged(this.onConfigChanged);
|
|
1027
|
+
};
|
|
1028
|
+
FocusVisualLayer.prototype.init = function () {
|
|
1029
|
+
if (this.inited)
|
|
1030
|
+
return;
|
|
1031
|
+
this.inited = true;
|
|
1032
|
+
this.node.zIndex = (TvUiConfigManager_2.default.getConfig().focus || {}).zIndex || 800;
|
|
1033
|
+
this.resizeToParent();
|
|
1034
|
+
this.buildView();
|
|
1035
|
+
FocusManager_1.default.onFocusChanged(this.onFocusChanged);
|
|
1036
|
+
TvUiConfigManager_2.default.onChanged(this.onConfigChanged);
|
|
1037
|
+
this.refresh(FocusManager_1.default.getCurrentFocusItem());
|
|
1038
|
+
};
|
|
1039
|
+
FocusVisualLayer.prototype.update = function () {
|
|
1040
|
+
if (!this.currentItem)
|
|
1041
|
+
return;
|
|
1042
|
+
this.drawFocus(this.currentItem);
|
|
1043
|
+
if (this.iconNode && this.iconNode.active && this.currentIconConfig) {
|
|
1044
|
+
this.positionIcon(this.currentItem, this.currentIconConfig);
|
|
1045
|
+
}
|
|
1046
|
+
};
|
|
1047
|
+
FocusVisualLayer.prototype.buildView = function () {
|
|
1048
|
+
if (!this.graphics) {
|
|
1049
|
+
this.graphics = this.node.addComponent(cc.Graphics);
|
|
1050
|
+
}
|
|
1051
|
+
if (!this.iconNode) {
|
|
1052
|
+
this.iconNode = new cc.Node("FocusIcon");
|
|
1053
|
+
this.iconNode.zIndex = 2;
|
|
1054
|
+
this.iconSprite = this.iconNode.addComponent(cc.Sprite);
|
|
1055
|
+
this.iconSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
|
|
1056
|
+
this.node.addChild(this.iconNode, 2);
|
|
1057
|
+
}
|
|
1058
|
+
this.node.active = false;
|
|
1059
|
+
};
|
|
1060
|
+
FocusVisualLayer.prototype.refresh = function (item) {
|
|
1061
|
+
this.currentItem = item;
|
|
1062
|
+
if (!item || item.showCursor === false) {
|
|
1063
|
+
this.hide();
|
|
1064
|
+
return;
|
|
1065
|
+
}
|
|
1066
|
+
this.node.active = true;
|
|
1067
|
+
this.drawFocus(item);
|
|
1068
|
+
this.refreshIcon(item);
|
|
1069
|
+
};
|
|
1070
|
+
FocusVisualLayer.prototype.hide = function () {
|
|
1071
|
+
this.node.active = false;
|
|
1072
|
+
this.currentItem = null;
|
|
1073
|
+
if (this.graphics)
|
|
1074
|
+
this.graphics.clear();
|
|
1075
|
+
if (this.iconNode)
|
|
1076
|
+
this.iconNode.active = false;
|
|
1077
|
+
this.currentIconConfig = null;
|
|
1078
|
+
};
|
|
1079
|
+
FocusVisualLayer.prototype.refreshIcon = function (item) {
|
|
1080
|
+
var _this = this;
|
|
1081
|
+
var iconKey = item.iconKey || (TvUiConfigManager_2.default.getConfig().focus || {}).defaultIconKey || "default";
|
|
1082
|
+
IconManager_1.default.getSpriteFrame(iconKey, function (frame, iconConfig) {
|
|
1083
|
+
if (_this.currentItem != item || !_this.iconNode || !_this.iconSprite)
|
|
1084
|
+
return;
|
|
1085
|
+
if (!frame) {
|
|
1086
|
+
_this.iconNode.active = false;
|
|
1087
|
+
return;
|
|
1088
|
+
}
|
|
1089
|
+
_this.iconNode.active = true;
|
|
1090
|
+
_this.iconSprite.spriteFrame = frame;
|
|
1091
|
+
_this.currentIconConfig = iconConfig || {};
|
|
1092
|
+
_this.positionIcon(item, _this.currentIconConfig);
|
|
1093
|
+
});
|
|
1094
|
+
};
|
|
1095
|
+
FocusVisualLayer.prototype.drawFocus = function (item) {
|
|
1096
|
+
if (!item || !item.node || !item.node.isValid || !item.node.activeInHierarchy) {
|
|
1097
|
+
this.hide();
|
|
1098
|
+
return;
|
|
1099
|
+
}
|
|
1100
|
+
this.resizeToParent();
|
|
1101
|
+
var focusConfig = TvUiConfigManager_2.default.getConfig().focus || {};
|
|
1102
|
+
if (focusConfig.enabled === false) {
|
|
1103
|
+
this.hide();
|
|
1104
|
+
return;
|
|
1105
|
+
}
|
|
1106
|
+
if (!this.graphics)
|
|
1107
|
+
return;
|
|
1108
|
+
this.graphics.clear();
|
|
1109
|
+
if (focusConfig.frameEnabled !== true) {
|
|
1110
|
+
return;
|
|
1111
|
+
}
|
|
1112
|
+
var node = item.node;
|
|
1113
|
+
var worldPos = node.parent.convertToWorldSpaceAR(node.position);
|
|
1114
|
+
var local = this.node.convertToNodeSpaceAR(worldPos);
|
|
1115
|
+
var contentSize = node.getContentSize();
|
|
1116
|
+
var scaleX = node.scaleX;
|
|
1117
|
+
var scaleY = node.scaleY;
|
|
1118
|
+
var width = contentSize.width * scaleX;
|
|
1119
|
+
var height = contentSize.height * scaleY;
|
|
1120
|
+
var padding = focusConfig.framePadding || 0;
|
|
1121
|
+
this.graphics.lineWidth = focusConfig.lineWidth || 4;
|
|
1122
|
+
this.graphics.strokeColor = this.parseColor(focusConfig.frameColor || "#ffd451", focusConfig.frameOpacity);
|
|
1123
|
+
this.graphics.rect(local.x - width / 2 - padding, local.y - height / 2 - padding, width + padding * 2, height + padding * 2);
|
|
1124
|
+
this.graphics.stroke();
|
|
1125
|
+
};
|
|
1126
|
+
FocusVisualLayer.prototype.positionIcon = function (item, iconConfig) {
|
|
1127
|
+
if (!item || !item.node || !item.node.isValid)
|
|
1128
|
+
return;
|
|
1129
|
+
var focusConfig = TvUiConfigManager_2.default.getConfig().focus || {};
|
|
1130
|
+
var node = item.node;
|
|
1131
|
+
var worldPos = node.parent.convertToWorldSpaceAR(node.position);
|
|
1132
|
+
var local = this.node.convertToNodeSpaceAR(worldPos);
|
|
1133
|
+
var contentSize = node.getContentSize();
|
|
1134
|
+
var scaleX = node.scaleX;
|
|
1135
|
+
var scaleY = node.scaleY;
|
|
1136
|
+
var width = contentSize.width * scaleX;
|
|
1137
|
+
var height = contentSize.height * scaleY;
|
|
1138
|
+
var iconWidth = iconConfig.width || 60;
|
|
1139
|
+
var iconHeight = iconConfig.height || 60;
|
|
1140
|
+
var offsetX = iconConfig.offsetX;
|
|
1141
|
+
var offsetY = iconConfig.offsetY;
|
|
1142
|
+
if (offsetX === undefined)
|
|
1143
|
+
offsetX = focusConfig.iconOffsetX || 0;
|
|
1144
|
+
if (offsetY === undefined)
|
|
1145
|
+
offsetY = focusConfig.iconOffsetY || 0;
|
|
1146
|
+
if (!this.iconNode)
|
|
1147
|
+
return;
|
|
1148
|
+
var x = local.x + width / 2 + offsetX;
|
|
1149
|
+
var y = local.y + height / 2 + offsetY;
|
|
1150
|
+
if ((focusConfig.iconPlacement || "bottomRight") == "bottomRight") {
|
|
1151
|
+
y = local.y - height / 2 - offsetY;
|
|
1152
|
+
}
|
|
1153
|
+
this.iconNode.setContentSize(iconWidth, iconHeight);
|
|
1154
|
+
this.iconNode.setPosition(x, y);
|
|
1155
|
+
};
|
|
1156
|
+
FocusVisualLayer.prototype.resizeToParent = function () {
|
|
1157
|
+
var parent = this.node.parent;
|
|
1158
|
+
var width = parent && parent.width ? parent.width : (cc.winSize && cc.winSize.width) || 1920;
|
|
1159
|
+
var height = parent && parent.height ? parent.height : (cc.winSize && cc.winSize.height) || 1080;
|
|
1160
|
+
this.node.setContentSize(width, height);
|
|
1161
|
+
this.node.setPosition(0, 0);
|
|
1162
|
+
};
|
|
1163
|
+
FocusVisualLayer.prototype.parseColor = function (hex, opacity) {
|
|
1164
|
+
hex = (hex || "#ffd451").replace("#", "");
|
|
1165
|
+
var r = parseInt(hex.substr(0, 2), 16);
|
|
1166
|
+
var g = parseInt(hex.substr(2, 2), 16);
|
|
1167
|
+
var b = parseInt(hex.substr(4, 2), 16);
|
|
1168
|
+
return cc.color(r || 255, g || 212, b || 81, opacity === undefined ? 230 : opacity);
|
|
1169
|
+
};
|
|
1170
|
+
var FocusVisualLayer_1;
|
|
1171
|
+
FocusVisualLayer = FocusVisualLayer_1 = __decorate([
|
|
1172
|
+
ccclass
|
|
1173
|
+
], FocusVisualLayer);
|
|
1174
|
+
return FocusVisualLayer;
|
|
1175
|
+
}(cc.Component));
|
|
1176
|
+
exports.default = FocusVisualLayer;
|
|
1177
|
+
});
|
|
1178
|
+
define("ad/IAdProvider", ["require", "exports"], function (require, exports) {
|
|
1179
|
+
"use strict";
|
|
1180
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1181
|
+
});
|
|
1182
|
+
define("core/NativeBridge", ["require", "exports", "config/TvUiConfigManager"], function (require, exports, TvUiConfigManager_3) {
|
|
1183
|
+
"use strict";
|
|
1184
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1185
|
+
var callbackId = 100;
|
|
1186
|
+
var nativeCallback = null;
|
|
1187
|
+
var root = typeof window !== "undefined" ? window : (typeof global !== "undefined" ? global : {});
|
|
1188
|
+
function hasBridge() {
|
|
1189
|
+
return root.AppBridge && typeof root.AppBridge.call == "function";
|
|
1190
|
+
}
|
|
1191
|
+
function log(message, data) {
|
|
1192
|
+
if (data !== undefined) {
|
|
1193
|
+
console.log("[NativeBridge] " + message, data);
|
|
1194
|
+
}
|
|
1195
|
+
else {
|
|
1196
|
+
console.log("[NativeBridge] " + message);
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
function normalizeCallbackData(data) {
|
|
1200
|
+
if (typeof data == "string") {
|
|
1201
|
+
try {
|
|
1202
|
+
return JSON.parse(data);
|
|
1203
|
+
}
|
|
1204
|
+
catch (e) {
|
|
1205
|
+
return { message: data };
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
return data || {};
|
|
1209
|
+
}
|
|
1210
|
+
function handleCallback(id, code, data, action) {
|
|
1211
|
+
var callbacks = root._tvuiCallbacks || {};
|
|
1212
|
+
id = id || root._tvuiLastCallbackId;
|
|
1213
|
+
var callback = callbacks[id];
|
|
1214
|
+
if (callback) {
|
|
1215
|
+
callback(code, data, action);
|
|
1216
|
+
delete callbacks[id];
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1219
|
+
function bridgeCall(action, data, callback) {
|
|
1220
|
+
var id = "cb_" + (++callbackId);
|
|
1221
|
+
root._tvuiLastCallbackId = id;
|
|
1222
|
+
if (callback) {
|
|
1223
|
+
root._tvuiCallbacks = root._tvuiCallbacks || {};
|
|
1224
|
+
root._tvuiCallbacks[id] = callback;
|
|
1225
|
+
}
|
|
1226
|
+
if (!hasBridge()) {
|
|
1227
|
+
log("AppBridge not found, skip in preview: " + action);
|
|
1228
|
+
if (callback) {
|
|
1229
|
+
callback(-1, { message: "AppBridge not found" }, action);
|
|
1230
|
+
delete root._tvuiCallbacks[id];
|
|
1231
|
+
}
|
|
1232
|
+
return;
|
|
1233
|
+
}
|
|
1234
|
+
root.AppBridge.call(JSON.stringify({
|
|
1235
|
+
action: action,
|
|
1236
|
+
data: data || {},
|
|
1237
|
+
callbackId: id
|
|
1238
|
+
}));
|
|
1239
|
+
}
|
|
1240
|
+
root.onNativeBridgeCallback = function (action, data) {
|
|
1241
|
+
data = normalizeCallbackData(data);
|
|
1242
|
+
log("native callback: " + action, data);
|
|
1243
|
+
switch (action) {
|
|
1244
|
+
case "onBridgeCallback":
|
|
1245
|
+
case "onDeviceInfo":
|
|
1246
|
+
case "onReward":
|
|
1247
|
+
case "onAdClosed":
|
|
1248
|
+
case "onAdFailed":
|
|
1249
|
+
case "onPopupAdLoaded":
|
|
1250
|
+
case "onPopupAdClosed":
|
|
1251
|
+
case "onPopupAdFailed":
|
|
1252
|
+
case "onAggregateReward":
|
|
1253
|
+
case "onAggregateAdClosed":
|
|
1254
|
+
case "onAggregateAdFailed":
|
|
1255
|
+
case "onAggregatePopupAdLoaded":
|
|
1256
|
+
case "onAggregatePopupAdClosed":
|
|
1257
|
+
case "onAggregatePopupAdFailed":
|
|
1258
|
+
case "onRankUploaded":
|
|
1259
|
+
case "onRankList":
|
|
1260
|
+
handleCallback(data.callbackId || data.callback_id, data.code, data.data || data, action);
|
|
1261
|
+
break;
|
|
1262
|
+
}
|
|
1263
|
+
if (nativeCallback)
|
|
1264
|
+
nativeCallback(action, data);
|
|
1265
|
+
};
|
|
1266
|
+
var NativeBridge = (function () {
|
|
1267
|
+
function NativeBridge() {
|
|
1268
|
+
}
|
|
1269
|
+
NativeBridge.hasBridge = function () {
|
|
1270
|
+
return hasBridge();
|
|
1271
|
+
};
|
|
1272
|
+
NativeBridge.call = function (action, data, callback) {
|
|
1273
|
+
bridgeCall(action, data || {}, callback);
|
|
1274
|
+
};
|
|
1275
|
+
NativeBridge.getDeviceInfo = function (callback) {
|
|
1276
|
+
bridgeCall("getDeviceInfo", {}, callback);
|
|
1277
|
+
};
|
|
1278
|
+
NativeBridge.onGameReady = function () {
|
|
1279
|
+
bridgeCall("onGameReady", { version: TvUiConfigManager_3.default.getConfig().version || "1.0.0" });
|
|
1280
|
+
};
|
|
1281
|
+
NativeBridge.onGamePause = function () {
|
|
1282
|
+
bridgeCall("onGamePause", {});
|
|
1283
|
+
};
|
|
1284
|
+
NativeBridge.onGameResume = function () {
|
|
1285
|
+
bridgeCall("onGameResume", {});
|
|
1286
|
+
};
|
|
1287
|
+
NativeBridge.onExitGame = function () {
|
|
1288
|
+
bridgeCall("exitGame", {});
|
|
1289
|
+
};
|
|
1290
|
+
NativeBridge.uploadRank = function (data, callback) {
|
|
1291
|
+
bridgeCall("uploadRank", data, callback);
|
|
1292
|
+
};
|
|
1293
|
+
NativeBridge.getRankList = function (data, callback) {
|
|
1294
|
+
bridgeCall("getRankList", data, callback);
|
|
1295
|
+
};
|
|
1296
|
+
NativeBridge.setNativeCallback = function (callback) {
|
|
1297
|
+
nativeCallback = callback;
|
|
1298
|
+
};
|
|
1299
|
+
return NativeBridge;
|
|
1300
|
+
}());
|
|
1301
|
+
exports.default = NativeBridge;
|
|
1302
|
+
});
|
|
1303
|
+
define("ad/AggregateAdProvider", ["require", "exports", "config/TvUiConfigManager", "core/NativeBridge", "../ad-sdk/ad-sdk"], function (require, exports, TvUiConfigManager_4, NativeBridge_1, ad_sdk_1) {
|
|
1304
|
+
"use strict";
|
|
1305
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1306
|
+
var AggregateAdProvider = (function () {
|
|
1307
|
+
function AggregateAdProvider() {
|
|
1308
|
+
this.type = "aggregate";
|
|
1309
|
+
}
|
|
1310
|
+
AggregateAdProvider.prototype.isAvailable = function () {
|
|
1311
|
+
return NativeBridge_1.default.hasBridge();
|
|
1312
|
+
};
|
|
1313
|
+
AggregateAdProvider.prototype.load = function (data) {
|
|
1314
|
+
return this.ensureSdk().then(function () { return data; });
|
|
1315
|
+
};
|
|
1316
|
+
AggregateAdProvider.prototype.show = function (data) {
|
|
1317
|
+
return null;
|
|
1318
|
+
};
|
|
1319
|
+
AggregateAdProvider.prototype.hide = function (slotId, channel) {
|
|
1320
|
+
};
|
|
1321
|
+
AggregateAdProvider.prototype.showReward = function (data) {
|
|
1322
|
+
var _this = this;
|
|
1323
|
+
var options = data.options || {};
|
|
1324
|
+
var channel = data.channel || {};
|
|
1325
|
+
var runtime = TvUiConfigManager_4.default.getConfig();
|
|
1326
|
+
return ad_sdk_1.AdSdk.requestAd({
|
|
1327
|
+
adType: ad_sdk_1.AdType.RewardVideo,
|
|
1328
|
+
cpId: options.cpId || runtime.cpId || "ppl",
|
|
1329
|
+
rewardType: options.reward_type || channel.reward_type || "reward",
|
|
1330
|
+
triggerScene: options.trigger_scene || data.slotId,
|
|
1331
|
+
extra: options.extra || {}
|
|
1332
|
+
}).then(function (result) {
|
|
1333
|
+
if (!result || result.isCompleted !== true) {
|
|
1334
|
+
if (options.onClose)
|
|
1335
|
+
options.onClose(result);
|
|
1336
|
+
return { status: "closed", data: result };
|
|
1337
|
+
}
|
|
1338
|
+
if (options.onSuccess)
|
|
1339
|
+
options.onSuccess(result);
|
|
1340
|
+
return { status: "success", data: result };
|
|
1341
|
+
}).catch(function (error) {
|
|
1342
|
+
if (_this.isUserAbandoned(error)) {
|
|
1343
|
+
if (options.onClose)
|
|
1344
|
+
options.onClose(error);
|
|
1345
|
+
return { status: "closed", data: error };
|
|
1346
|
+
}
|
|
1347
|
+
return { status: "failed", error: error };
|
|
1348
|
+
});
|
|
1349
|
+
};
|
|
1350
|
+
AggregateAdProvider.prototype.ensureSdk = function () {
|
|
1351
|
+
var _this = this;
|
|
1352
|
+
if (AggregateAdProvider.initialized)
|
|
1353
|
+
return Promise.resolve();
|
|
1354
|
+
if (AggregateAdProvider.initTask)
|
|
1355
|
+
return AggregateAdProvider.initTask;
|
|
1356
|
+
var runtime = TvUiConfigManager_4.default.getConfig();
|
|
1357
|
+
var adSdkConfig = runtime.adSdk || {};
|
|
1358
|
+
var platform = this.getPlatform(adSdkConfig.platform || "xiaomi");
|
|
1359
|
+
var adapterConfig = {};
|
|
1360
|
+
var customConfig = adSdkConfig.adapterConfig || {};
|
|
1361
|
+
var key;
|
|
1362
|
+
adapterConfig.cpId = runtime.cpId || "ppl";
|
|
1363
|
+
for (key in customConfig)
|
|
1364
|
+
adapterConfig[key] = customConfig[key];
|
|
1365
|
+
var adapters = {};
|
|
1366
|
+
adapters[platform] = adapterConfig;
|
|
1367
|
+
AggregateAdProvider.initTask = ad_sdk_1.AdSdk.init({
|
|
1368
|
+
platform: platform,
|
|
1369
|
+
adapters: adapters
|
|
1370
|
+
}).then(function () {
|
|
1371
|
+
AggregateAdProvider.initialized = true;
|
|
1372
|
+
_this.notifyGameReady(runtime.version || AggregateAdProvider.GAME_VERSION);
|
|
1373
|
+
}).catch(function (error) {
|
|
1374
|
+
AggregateAdProvider.initTask = null;
|
|
1375
|
+
throw error;
|
|
1376
|
+
});
|
|
1377
|
+
return AggregateAdProvider.initTask;
|
|
1378
|
+
};
|
|
1379
|
+
AggregateAdProvider.prototype.notifyGameReady = function (version) {
|
|
1380
|
+
if (AggregateAdProvider.gameReadyNotified)
|
|
1381
|
+
return;
|
|
1382
|
+
AggregateAdProvider.gameReadyNotified = true;
|
|
1383
|
+
try {
|
|
1384
|
+
ad_sdk_1.AdSdk.onGameReady(version || AggregateAdProvider.GAME_VERSION);
|
|
1385
|
+
}
|
|
1386
|
+
catch (error) {
|
|
1387
|
+
console.warn("[AggregateAdProvider] onGameReady failed", error);
|
|
1388
|
+
}
|
|
1389
|
+
};
|
|
1390
|
+
AggregateAdProvider.prototype.getPlatform = function (platform) {
|
|
1391
|
+
if (platform == "xiaomi" || !platform)
|
|
1392
|
+
return ad_sdk_1.AdPlatform.Xiaomi;
|
|
1393
|
+
return platform;
|
|
1394
|
+
};
|
|
1395
|
+
AggregateAdProvider.prototype.isUserAbandoned = function (error) {
|
|
1396
|
+
if (!error)
|
|
1397
|
+
return false;
|
|
1398
|
+
return error.code == ad_sdk_1.AdErrorCode.UserAbandoned
|
|
1399
|
+
|| error.code == 1006
|
|
1400
|
+
|| error.isCompleted === false
|
|
1401
|
+
|| error.is_completed === false
|
|
1402
|
+
|| error.message == "Ad closed by user before completion";
|
|
1403
|
+
};
|
|
1404
|
+
AggregateAdProvider.initialized = false;
|
|
1405
|
+
AggregateAdProvider.initTask = null;
|
|
1406
|
+
AggregateAdProvider.gameReadyNotified = false;
|
|
1407
|
+
AggregateAdProvider.GAME_VERSION = "1.0.0";
|
|
1408
|
+
return AggregateAdProvider;
|
|
1409
|
+
}());
|
|
1410
|
+
exports.default = AggregateAdProvider;
|
|
1411
|
+
});
|
|
1412
|
+
define("ad/SelfAdProvider", ["require", "exports"], function (require, exports) {
|
|
1413
|
+
"use strict";
|
|
1414
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1415
|
+
var SelfAdProvider = (function () {
|
|
1416
|
+
function SelfAdProvider() {
|
|
1417
|
+
this.type = "self";
|
|
1418
|
+
}
|
|
1419
|
+
SelfAdProvider.prototype.isAvailable = function () {
|
|
1420
|
+
return true;
|
|
1421
|
+
};
|
|
1422
|
+
SelfAdProvider.prototype.load = function (data) {
|
|
1423
|
+
return Promise.resolve(data);
|
|
1424
|
+
};
|
|
1425
|
+
SelfAdProvider.prototype.show = function (data) {
|
|
1426
|
+
var channel = data.channel || {};
|
|
1427
|
+
var options = data.options || {};
|
|
1428
|
+
var path = channel.imagePath || (data.slotConfig.fallback && data.slotConfig.fallback.imagePath);
|
|
1429
|
+
if (!path || !options.container) {
|
|
1430
|
+
if (options.onLoad)
|
|
1431
|
+
options.onLoad({ self: true, slotId: data.slotId });
|
|
1432
|
+
return Promise.resolve({ status: "loaded", data: { self: true, slotId: data.slotId } });
|
|
1433
|
+
}
|
|
1434
|
+
var node = options.container;
|
|
1435
|
+
var sprite = node.getComponent(cc.Sprite) || node.addComponent(cc.Sprite);
|
|
1436
|
+
sprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
|
|
1437
|
+
return new Promise(function (resolve) {
|
|
1438
|
+
cc.loader.loadRes(path, cc.SpriteFrame, function (error, frame) {
|
|
1439
|
+
if (error || !frame) {
|
|
1440
|
+
resolve({ status: "failed", error: error || { message: "self ad frame missing" } });
|
|
1441
|
+
return;
|
|
1442
|
+
}
|
|
1443
|
+
sprite.spriteFrame = frame;
|
|
1444
|
+
node.active = true;
|
|
1445
|
+
if (options.onLoad)
|
|
1446
|
+
options.onLoad({ self: true, slotId: data.slotId });
|
|
1447
|
+
resolve({ status: "loaded", data: { self: true, slotId: data.slotId } });
|
|
1448
|
+
});
|
|
1449
|
+
});
|
|
1450
|
+
};
|
|
1451
|
+
SelfAdProvider.prototype.hide = function (_slotId) {
|
|
1452
|
+
};
|
|
1453
|
+
return SelfAdProvider;
|
|
1454
|
+
}());
|
|
1455
|
+
exports.default = SelfAdProvider;
|
|
1456
|
+
});
|
|
1457
|
+
define("ad/MockAdProvider", ["require", "exports"], function (require, exports) {
|
|
1458
|
+
"use strict";
|
|
1459
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1460
|
+
var MockAdProvider = (function () {
|
|
1461
|
+
function MockAdProvider() {
|
|
1462
|
+
this.type = "mock";
|
|
1463
|
+
}
|
|
1464
|
+
MockAdProvider.prototype.isAvailable = function () {
|
|
1465
|
+
return true;
|
|
1466
|
+
};
|
|
1467
|
+
MockAdProvider.prototype.load = function (data) {
|
|
1468
|
+
return Promise.resolve(data);
|
|
1469
|
+
};
|
|
1470
|
+
MockAdProvider.prototype.show = function (data) {
|
|
1471
|
+
var options = data.options || {};
|
|
1472
|
+
var mode = options.mode || data.slotConfig.mode || "popup";
|
|
1473
|
+
console.log("[MockAdProvider] show", data.slotId, mode);
|
|
1474
|
+
return new Promise(function (resolve) {
|
|
1475
|
+
setTimeout(function () {
|
|
1476
|
+
var result = { mock: true, slotId: data.slotId };
|
|
1477
|
+
if (mode == "reward") {
|
|
1478
|
+
var rewardResult = { isCompleted: true, mock: true, slotId: data.slotId };
|
|
1479
|
+
if (options.onSuccess)
|
|
1480
|
+
options.onSuccess(rewardResult);
|
|
1481
|
+
resolve({ status: "success", data: rewardResult });
|
|
1482
|
+
}
|
|
1483
|
+
else {
|
|
1484
|
+
if (options.onLoad)
|
|
1485
|
+
options.onLoad(result);
|
|
1486
|
+
resolve({ status: "loaded", data: result });
|
|
1487
|
+
}
|
|
1488
|
+
}, 0);
|
|
1489
|
+
});
|
|
1490
|
+
};
|
|
1491
|
+
MockAdProvider.prototype.hide = function (slotId) {
|
|
1492
|
+
console.log("[MockAdProvider] hide", slotId);
|
|
1493
|
+
};
|
|
1494
|
+
return MockAdProvider;
|
|
1495
|
+
}());
|
|
1496
|
+
exports.default = MockAdProvider;
|
|
1497
|
+
});
|
|
1498
|
+
define("ad/AdManager", ["require", "exports", "config/TvUiConfigManager", "ad/AggregateAdProvider", "ad/SelfAdProvider", "ad/MockAdProvider"], function (require, exports, TvUiConfigManager_5, AggregateAdProvider_1, SelfAdProvider_1, MockAdProvider_1) {
|
|
1499
|
+
"use strict";
|
|
1500
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1501
|
+
var AdManager = (function () {
|
|
1502
|
+
function AdManager() {
|
|
1503
|
+
}
|
|
1504
|
+
AdManager.init = function () {
|
|
1505
|
+
this.providers = {};
|
|
1506
|
+
this.registerProvider(new AggregateAdProvider_1.default());
|
|
1507
|
+
this.registerProvider(new SelfAdProvider_1.default());
|
|
1508
|
+
this.registerProvider(new MockAdProvider_1.default());
|
|
1509
|
+
};
|
|
1510
|
+
AdManager.registerProvider = function (provider) {
|
|
1511
|
+
if (!provider || !provider.type)
|
|
1512
|
+
return;
|
|
1513
|
+
this.providers[provider.type] = provider;
|
|
1514
|
+
};
|
|
1515
|
+
AdManager.showSlot = function (slotId, options) {
|
|
1516
|
+
if (options === void 0) { options = {}; }
|
|
1517
|
+
var slotConfig = this.getSlotConfig(slotId);
|
|
1518
|
+
if (!slotConfig || slotConfig.enabled === false) {
|
|
1519
|
+
if (options.onFail)
|
|
1520
|
+
options.onFail({ message: "ad slot disabled", slotId: slotId });
|
|
1521
|
+
return Promise.resolve(false);
|
|
1522
|
+
}
|
|
1523
|
+
var channels = this.getSortedChannels(slotConfig);
|
|
1524
|
+
return this.showByChannels(slotId, slotConfig, options, channels, 0, null).then(function (result) {
|
|
1525
|
+
if (result && (result.status == "success" || result.status == "loaded"))
|
|
1526
|
+
return true;
|
|
1527
|
+
if (result && result.status == "closed")
|
|
1528
|
+
return false;
|
|
1529
|
+
if (options.onFail) {
|
|
1530
|
+
options.onFail((result && result.error) || { message: "all ad channels failed", slotId: slotId });
|
|
1531
|
+
}
|
|
1532
|
+
return false;
|
|
1533
|
+
});
|
|
1534
|
+
};
|
|
1535
|
+
AdManager.hideSlot = function (slotId) {
|
|
1536
|
+
var slotConfig = this.getSlotConfig(slotId);
|
|
1537
|
+
var channels = slotConfig ? this.getSortedChannels(slotConfig) : [];
|
|
1538
|
+
if (channels.length > 0) {
|
|
1539
|
+
for (var i = 0; i < channels.length; i++) {
|
|
1540
|
+
var channel = channels[i];
|
|
1541
|
+
var provider = channel && this.providers[channel.type];
|
|
1542
|
+
if (provider)
|
|
1543
|
+
provider.hide(slotId, channel);
|
|
1544
|
+
}
|
|
1545
|
+
return;
|
|
1546
|
+
}
|
|
1547
|
+
for (var type in this.providers) {
|
|
1548
|
+
if (this.providers.hasOwnProperty(type))
|
|
1549
|
+
this.providers[type].hide(slotId);
|
|
1550
|
+
}
|
|
1551
|
+
};
|
|
1552
|
+
AdManager.refreshSlot = function (slotId, options) {
|
|
1553
|
+
if (options === void 0) { options = {}; }
|
|
1554
|
+
this.hideSlot(slotId);
|
|
1555
|
+
return this.showSlot(slotId, options);
|
|
1556
|
+
};
|
|
1557
|
+
AdManager.showReward = function (options) {
|
|
1558
|
+
options = this.mergeOptions(options, { mode: "reward" });
|
|
1559
|
+
return this.showSlot((options && options.slotId) || "reward", options);
|
|
1560
|
+
};
|
|
1561
|
+
AdManager.showPopup = function (options) {
|
|
1562
|
+
options = this.mergeOptions(options, { mode: "popup" });
|
|
1563
|
+
return this.showSlot((options && options.slotId) || (options && options.trigger_scene) || "popup", options);
|
|
1564
|
+
};
|
|
1565
|
+
AdManager.hidePopup = function (scene) {
|
|
1566
|
+
this.hideSlot(scene || "popup");
|
|
1567
|
+
};
|
|
1568
|
+
AdManager.getSlotConfig = function (slotId) {
|
|
1569
|
+
var config = TvUiConfigManager_5.default.getConfig();
|
|
1570
|
+
var ads = config.ads || {};
|
|
1571
|
+
return ads[slotId] || ads["popup"] || null;
|
|
1572
|
+
};
|
|
1573
|
+
AdManager.showByChannels = function (slotId, slotConfig, options, channels, index, lastError) {
|
|
1574
|
+
var _this = this;
|
|
1575
|
+
if (index >= channels.length) {
|
|
1576
|
+
return Promise.resolve({ status: "failed", error: lastError || { message: "ad channels empty", slotId: slotId } });
|
|
1577
|
+
}
|
|
1578
|
+
var channel = channels[index];
|
|
1579
|
+
if (!channel || channel.enabled === false) {
|
|
1580
|
+
return this.showByChannels(slotId, slotConfig, options, channels, index + 1, lastError);
|
|
1581
|
+
}
|
|
1582
|
+
var provider = this.providers[channel.type];
|
|
1583
|
+
if (!provider) {
|
|
1584
|
+
return this.showByChannels(slotId, slotConfig, options, channels, index + 1, { message: "ad provider missing", channel: channel.type });
|
|
1585
|
+
}
|
|
1586
|
+
if (!provider.isAvailable()) {
|
|
1587
|
+
return this.showByChannels(slotId, slotConfig, options, channels, index + 1, { message: "ad provider unavailable", channel: channel.type });
|
|
1588
|
+
}
|
|
1589
|
+
var data = {
|
|
1590
|
+
slotId: slotId,
|
|
1591
|
+
slotConfig: slotConfig,
|
|
1592
|
+
channel: channel,
|
|
1593
|
+
options: options
|
|
1594
|
+
};
|
|
1595
|
+
return provider.load(data).then(function (runtimeData) {
|
|
1596
|
+
return provider.show(runtimeData);
|
|
1597
|
+
}).then(function (result) {
|
|
1598
|
+
if (!result || result.status == "failed") {
|
|
1599
|
+
if (options && options.mode == "reward")
|
|
1600
|
+
return result || { status: "failed", error: lastError };
|
|
1601
|
+
return _this.showByChannels(slotId, slotConfig, options, channels, index + 1, result && (result.error || result.data));
|
|
1602
|
+
}
|
|
1603
|
+
return result;
|
|
1604
|
+
}).catch(function (error) {
|
|
1605
|
+
if (options && options.mode == "reward")
|
|
1606
|
+
return { status: "failed", error: error };
|
|
1607
|
+
return _this.showByChannels(slotId, slotConfig, options, channels, index + 1, error);
|
|
1608
|
+
});
|
|
1609
|
+
};
|
|
1610
|
+
AdManager.getSortedChannels = function (slotConfig) {
|
|
1611
|
+
var _this = this;
|
|
1612
|
+
var channels = [];
|
|
1613
|
+
var configured = (slotConfig && slotConfig.channels) || [];
|
|
1614
|
+
for (var i = 0; i < configured.length; i++) {
|
|
1615
|
+
if (configured[i])
|
|
1616
|
+
channels.push(configured[i]);
|
|
1617
|
+
}
|
|
1618
|
+
if (slotConfig && slotConfig.fallback) {
|
|
1619
|
+
channels.push(this.normalizeFallback(slotConfig.fallback));
|
|
1620
|
+
}
|
|
1621
|
+
if (!this.hasChannelType(channels, "mock")) {
|
|
1622
|
+
channels.push({ type: "mock", priority: 100 });
|
|
1623
|
+
}
|
|
1624
|
+
channels.sort(function (a, b) {
|
|
1625
|
+
return _this.getPriority(a) - _this.getPriority(b);
|
|
1626
|
+
});
|
|
1627
|
+
return channels;
|
|
1628
|
+
};
|
|
1629
|
+
AdManager.normalizeFallback = function (fallback) {
|
|
1630
|
+
if (fallback.type)
|
|
1631
|
+
return fallback;
|
|
1632
|
+
var result = this.mergeOptions(fallback, {});
|
|
1633
|
+
result.type = (fallback.imagePath || fallback.imageUrl) ? "self" : "mock";
|
|
1634
|
+
if (result.priority === undefined)
|
|
1635
|
+
result.priority = 90;
|
|
1636
|
+
return result;
|
|
1637
|
+
};
|
|
1638
|
+
AdManager.hasChannelType = function (channels, type) {
|
|
1639
|
+
for (var i = 0; i < channels.length; i++) {
|
|
1640
|
+
if (channels[i] && channels[i].type == type)
|
|
1641
|
+
return true;
|
|
1642
|
+
}
|
|
1643
|
+
return false;
|
|
1644
|
+
};
|
|
1645
|
+
AdManager.getPriority = function (channel) {
|
|
1646
|
+
if (!channel || channel.priority === undefined)
|
|
1647
|
+
return 999;
|
|
1648
|
+
return channel.priority;
|
|
1649
|
+
};
|
|
1650
|
+
AdManager.mergeOptions = function (base, extra) {
|
|
1651
|
+
var result = {};
|
|
1652
|
+
var key;
|
|
1653
|
+
base = base || {};
|
|
1654
|
+
extra = extra || {};
|
|
1655
|
+
for (key in base)
|
|
1656
|
+
result[key] = base[key];
|
|
1657
|
+
for (key in extra)
|
|
1658
|
+
result[key] = extra[key];
|
|
1659
|
+
return result;
|
|
1660
|
+
};
|
|
1661
|
+
AdManager.providers = {};
|
|
1662
|
+
return AdManager;
|
|
1663
|
+
}());
|
|
1664
|
+
exports.default = AdManager;
|
|
1665
|
+
});
|
|
1666
|
+
define("core/BackManager", ["require", "exports"], function (require, exports) {
|
|
1667
|
+
"use strict";
|
|
1668
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1669
|
+
var BackManager = (function () {
|
|
1670
|
+
function BackManager() {
|
|
1671
|
+
}
|
|
1672
|
+
BackManager.reset = function () {
|
|
1673
|
+
this.handlers = [];
|
|
1674
|
+
this.fallback = null;
|
|
1675
|
+
};
|
|
1676
|
+
BackManager.setFallback = function (handler) {
|
|
1677
|
+
this.fallback = handler;
|
|
1678
|
+
};
|
|
1679
|
+
BackManager.push = function (handler) {
|
|
1680
|
+
return;
|
|
1681
|
+
if (!handler)
|
|
1682
|
+
return;
|
|
1683
|
+
this.remove(handler);
|
|
1684
|
+
this.handlers.push(handler);
|
|
1685
|
+
};
|
|
1686
|
+
BackManager.remove = function (handler) {
|
|
1687
|
+
return;
|
|
1688
|
+
for (var i = this.handlers.length - 1; i >= 0; i--) {
|
|
1689
|
+
if (this.handlers[i] == handler)
|
|
1690
|
+
this.handlers.splice(i, 1);
|
|
1691
|
+
}
|
|
1692
|
+
};
|
|
1693
|
+
BackManager.handle = function () {
|
|
1694
|
+
for (var i = this.handlers.length - 1; i >= 0; i--) {
|
|
1695
|
+
var handler = this.handlers[i];
|
|
1696
|
+
if (!handler)
|
|
1697
|
+
continue;
|
|
1698
|
+
var result = handler();
|
|
1699
|
+
if (result !== false)
|
|
1700
|
+
return true;
|
|
1701
|
+
}
|
|
1702
|
+
if (this.fallback)
|
|
1703
|
+
return this.fallback() !== false;
|
|
1704
|
+
return false;
|
|
1705
|
+
};
|
|
1706
|
+
BackManager.handlers = [];
|
|
1707
|
+
BackManager.fallback = null;
|
|
1708
|
+
return BackManager;
|
|
1709
|
+
}());
|
|
1710
|
+
exports.default = BackManager;
|
|
1711
|
+
});
|
|
1712
|
+
define("input/RemoteInputManager", ["require", "exports", "input/KeyCodeAdapter"], function (require, exports, KeyCodeAdapter_2) {
|
|
1713
|
+
"use strict";
|
|
1714
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1715
|
+
exports.RemoteInputManager = void 0;
|
|
1716
|
+
var RemoteInputManager = (function () {
|
|
1717
|
+
function RemoteInputManager() {
|
|
1718
|
+
}
|
|
1719
|
+
RemoteInputManager.enable = function () {
|
|
1720
|
+
if (this.enabled)
|
|
1721
|
+
return;
|
|
1722
|
+
this.enabled = true;
|
|
1723
|
+
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
|
|
1724
|
+
this.enableDomInput();
|
|
1725
|
+
this.focusCanvas();
|
|
1726
|
+
};
|
|
1727
|
+
RemoteInputManager.disable = function () {
|
|
1728
|
+
if (!this.enabled)
|
|
1729
|
+
return;
|
|
1730
|
+
this.enabled = false;
|
|
1731
|
+
cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
|
|
1732
|
+
this.disableDomInput();
|
|
1733
|
+
this.lastKeyCode = -1;
|
|
1734
|
+
this.lastDispatchTime = 0;
|
|
1735
|
+
};
|
|
1736
|
+
RemoteInputManager.clear = function () {
|
|
1737
|
+
this.handlers = {};
|
|
1738
|
+
};
|
|
1739
|
+
RemoteInputManager.on = function (key, handler) {
|
|
1740
|
+
if (!this.handlers[key])
|
|
1741
|
+
this.handlers[key] = [];
|
|
1742
|
+
this.handlers[key].push(handler);
|
|
1743
|
+
};
|
|
1744
|
+
RemoteInputManager.off = function (key, handler) {
|
|
1745
|
+
var list = this.handlers[key];
|
|
1746
|
+
if (!list)
|
|
1747
|
+
return;
|
|
1748
|
+
var index = list.indexOf(handler);
|
|
1749
|
+
if (index >= 0)
|
|
1750
|
+
list.splice(index, 1);
|
|
1751
|
+
};
|
|
1752
|
+
RemoteInputManager.toRemoteKey = function (keyCode) {
|
|
1753
|
+
return KeyCodeAdapter_2.default.toRemoteKey(keyCode);
|
|
1754
|
+
};
|
|
1755
|
+
RemoteInputManager.dispatchKeyCode = function (keyCode) {
|
|
1756
|
+
var now = Date.now();
|
|
1757
|
+
if (keyCode == this.lastKeyCode && now - this.lastDispatchTime < this.DISPATCH_DEBOUNCE_MS) {
|
|
1758
|
+
return false;
|
|
1759
|
+
}
|
|
1760
|
+
this.lastKeyCode = keyCode;
|
|
1761
|
+
this.lastDispatchTime = now;
|
|
1762
|
+
var key = KeyCodeAdapter_2.default.toRemoteKey(keyCode);
|
|
1763
|
+
var list = this.handlers[key] || [];
|
|
1764
|
+
for (var i = list.length - 1; i >= 0; i--) {
|
|
1765
|
+
var result = list[i](keyCode);
|
|
1766
|
+
if (result !== false)
|
|
1767
|
+
return true;
|
|
1768
|
+
}
|
|
1769
|
+
return false;
|
|
1770
|
+
};
|
|
1771
|
+
RemoteInputManager.onKeyDown = function (event) {
|
|
1772
|
+
this.dispatchKeyCode(event.keyCode);
|
|
1773
|
+
};
|
|
1774
|
+
RemoteInputManager.enableDomInput = function () {
|
|
1775
|
+
if (this.domInputEnabled || typeof window == "undefined")
|
|
1776
|
+
return;
|
|
1777
|
+
this.domInputEnabled = true;
|
|
1778
|
+
window.addEventListener("keydown", this.onDomKeyDown, true);
|
|
1779
|
+
};
|
|
1780
|
+
RemoteInputManager.disableDomInput = function () {
|
|
1781
|
+
if (!this.domInputEnabled || typeof window == "undefined")
|
|
1782
|
+
return;
|
|
1783
|
+
this.domInputEnabled = false;
|
|
1784
|
+
window.removeEventListener("keydown", this.onDomKeyDown, true);
|
|
1785
|
+
};
|
|
1786
|
+
RemoteInputManager.onDomKeyDown = function (event) {
|
|
1787
|
+
var handled = RemoteInputManager.dispatchKeyCode(event.keyCode || event.which);
|
|
1788
|
+
if (handled && event.preventDefault)
|
|
1789
|
+
event.preventDefault();
|
|
1790
|
+
};
|
|
1791
|
+
RemoteInputManager.focusCanvas = function () {
|
|
1792
|
+
if (typeof document == "undefined")
|
|
1793
|
+
return;
|
|
1794
|
+
try {
|
|
1795
|
+
var canvas = (cc && cc.game && cc.game.canvas) ? cc.game.canvas : document.querySelector("canvas");
|
|
1796
|
+
if (canvas) {
|
|
1797
|
+
canvas.tabIndex = canvas.tabIndex || 0;
|
|
1798
|
+
if (typeof canvas.focus == "function") {
|
|
1799
|
+
canvas.focus();
|
|
1800
|
+
return;
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
if (typeof window != "undefined" && typeof window.focus == "function")
|
|
1804
|
+
window.focus();
|
|
1805
|
+
}
|
|
1806
|
+
catch (e) {
|
|
1807
|
+
}
|
|
1808
|
+
};
|
|
1809
|
+
RemoteInputManager.handlers = {};
|
|
1810
|
+
RemoteInputManager.enabled = false;
|
|
1811
|
+
RemoteInputManager.domInputEnabled = false;
|
|
1812
|
+
RemoteInputManager.lastKeyCode = -1;
|
|
1813
|
+
RemoteInputManager.lastDispatchTime = 0;
|
|
1814
|
+
RemoteInputManager.DISPATCH_DEBOUNCE_MS = 160;
|
|
1815
|
+
return RemoteInputManager;
|
|
1816
|
+
}());
|
|
1817
|
+
exports.RemoteInputManager = RemoteInputManager;
|
|
1818
|
+
});
|
|
1819
|
+
define("core/TvUiRoot", ["require", "exports", "config/TvUiConfigManager", "focus/FocusManager", "focus/FocusVisualLayer", "icon/IconManager", "ad/AdManager", "input/KeyCodeAdapter", "core/BackManager", "core/NativeBridge", "input/RemoteInputManager"], function (require, exports, TvUiConfigManager_6, FocusManager_2, FocusVisualLayer_2, IconManager_2, AdManager_1, KeyCodeAdapter_3, BackManager_1, NativeBridge_2, RemoteInputManager_1) {
|
|
1820
|
+
"use strict";
|
|
1821
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1822
|
+
var ccclass = cc._decorator.ccclass;
|
|
1823
|
+
var TvUiRoot = (function (_super) {
|
|
1824
|
+
__extends(TvUiRoot, _super);
|
|
1825
|
+
function TvUiRoot() {
|
|
1826
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
1827
|
+
_this.visualLayer = null;
|
|
1828
|
+
_this.configured = false;
|
|
1829
|
+
return _this;
|
|
1830
|
+
}
|
|
1831
|
+
TvUiRoot_1 = TvUiRoot;
|
|
1832
|
+
TvUiRoot.ensure = function (config) {
|
|
1833
|
+
if (this.instance && this.instance.node && this.instance.node.isValid) {
|
|
1834
|
+
if (config)
|
|
1835
|
+
this.instance.configure(config);
|
|
1836
|
+
return this.instance;
|
|
1837
|
+
}
|
|
1838
|
+
var scene = cc.director.getScene();
|
|
1839
|
+
var node = new cc.Node("TvUiRoot");
|
|
1840
|
+
node.zIndex = 800;
|
|
1841
|
+
scene.addChild(node, 800);
|
|
1842
|
+
if (cc.game && cc.game.addPersistRootNode) {
|
|
1843
|
+
cc.game.addPersistRootNode(node);
|
|
1844
|
+
}
|
|
1845
|
+
this.instance = node.addComponent(TvUiRoot_1);
|
|
1846
|
+
this.instance.configure(config || {});
|
|
1847
|
+
return this.instance;
|
|
1848
|
+
};
|
|
1849
|
+
TvUiRoot.getInstance = function () {
|
|
1850
|
+
return this.instance;
|
|
1851
|
+
};
|
|
1852
|
+
TvUiRoot.setBackHandler = function (handler) {
|
|
1853
|
+
this.backHandler = handler;
|
|
1854
|
+
if (this.instance)
|
|
1855
|
+
this.instance.bindInputHandlers();
|
|
1856
|
+
};
|
|
1857
|
+
TvUiRoot.prototype.onLoad = function () {
|
|
1858
|
+
TvUiRoot_1.instance = this;
|
|
1859
|
+
this.resize();
|
|
1860
|
+
this.exposeGlobal();
|
|
1861
|
+
};
|
|
1862
|
+
TvUiRoot.prototype.onDestroy = function () {
|
|
1863
|
+
if (TvUiRoot_1.instance == this)
|
|
1864
|
+
TvUiRoot_1.instance = null;
|
|
1865
|
+
};
|
|
1866
|
+
TvUiRoot.prototype.configure = function (config) {
|
|
1867
|
+
var _this = this;
|
|
1868
|
+
this.configured = true;
|
|
1869
|
+
TvUiConfigManager_6.default.init(config || {}, function () {
|
|
1870
|
+
_this.applyConfig();
|
|
1871
|
+
});
|
|
1872
|
+
this.applyConfig();
|
|
1873
|
+
};
|
|
1874
|
+
TvUiRoot.prototype.applyConfig = function () {
|
|
1875
|
+
if (!this.configured)
|
|
1876
|
+
return;
|
|
1877
|
+
var config = TvUiConfigManager_6.default.getConfig();
|
|
1878
|
+
if (cc.view && config.designWidth && config.designHeight) {
|
|
1879
|
+
cc.view.setDesignResolutionSize(config.designWidth, config.designHeight, config.resolutionPolicy || cc.ResolutionPolicy.SHOW_ALL);
|
|
1880
|
+
}
|
|
1881
|
+
this.resize();
|
|
1882
|
+
IconManager_2.default.init();
|
|
1883
|
+
AdManager_1.default.init();
|
|
1884
|
+
this.ensureVisualLayer();
|
|
1885
|
+
this.bindInputHandlers();
|
|
1886
|
+
this.exposeGlobal();
|
|
1887
|
+
};
|
|
1888
|
+
TvUiRoot.prototype.ensureVisualLayer = function () {
|
|
1889
|
+
var config = TvUiConfigManager_6.default.getConfig();
|
|
1890
|
+
if (config.focus && config.focus.enabled === false)
|
|
1891
|
+
return;
|
|
1892
|
+
this.visualLayer = FocusVisualLayer_2.default.create(this.node);
|
|
1893
|
+
};
|
|
1894
|
+
TvUiRoot.prototype.bindInputHandlers = function () {
|
|
1895
|
+
var config = TvUiConfigManager_6.default.getConfig();
|
|
1896
|
+
RemoteInputManager_1.RemoteInputManager.clear();
|
|
1897
|
+
if (config.enableRemoteInput === false) {
|
|
1898
|
+
RemoteInputManager_1.RemoteInputManager.disable();
|
|
1899
|
+
return;
|
|
1900
|
+
}
|
|
1901
|
+
RemoteInputManager_1.RemoteInputManager.enable();
|
|
1902
|
+
RemoteInputManager_1.RemoteInputManager.on(KeyCodeAdapter_3.TvRemoteKey.Ok, function () { return FocusManager_2.default.confirm(); });
|
|
1903
|
+
RemoteInputManager_1.RemoteInputManager.on(KeyCodeAdapter_3.TvRemoteKey.Left, function () { return FocusManager_2.default.move("left"); });
|
|
1904
|
+
RemoteInputManager_1.RemoteInputManager.on(KeyCodeAdapter_3.TvRemoteKey.Right, function () { return FocusManager_2.default.move("right"); });
|
|
1905
|
+
RemoteInputManager_1.RemoteInputManager.on(KeyCodeAdapter_3.TvRemoteKey.Up, function () { return FocusManager_2.default.move("up"); });
|
|
1906
|
+
RemoteInputManager_1.RemoteInputManager.on(KeyCodeAdapter_3.TvRemoteKey.Down, function () { return FocusManager_2.default.move("down"); });
|
|
1907
|
+
RemoteInputManager_1.RemoteInputManager.on(KeyCodeAdapter_3.TvRemoteKey.Back, function () {
|
|
1908
|
+
if (TvUiRoot_1.backHandler)
|
|
1909
|
+
return TvUiRoot_1.backHandler() !== false;
|
|
1910
|
+
return FocusManager_2.default.back();
|
|
1911
|
+
});
|
|
1912
|
+
};
|
|
1913
|
+
TvUiRoot.prototype.resize = function () {
|
|
1914
|
+
var width = (cc.winSize && cc.winSize.width) || 1920;
|
|
1915
|
+
var height = (cc.winSize && cc.winSize.height) || 1080;
|
|
1916
|
+
this.node.setContentSize(width, height);
|
|
1917
|
+
this.node.setPosition(0, 0);
|
|
1918
|
+
};
|
|
1919
|
+
TvUiRoot.prototype.exposeGlobal = function () {
|
|
1920
|
+
var root = typeof window !== "undefined" ? window : (typeof global !== "undefined" ? global : null);
|
|
1921
|
+
if (!root)
|
|
1922
|
+
return;
|
|
1923
|
+
root.TvUiRoot = TvUiRoot_1;
|
|
1924
|
+
if (root.TvUi) {
|
|
1925
|
+
root.tvui = root.TvUi;
|
|
1926
|
+
return;
|
|
1927
|
+
}
|
|
1928
|
+
if (root.tvui)
|
|
1929
|
+
return;
|
|
1930
|
+
root.tvui = {
|
|
1931
|
+
root: TvUiRoot_1,
|
|
1932
|
+
config: TvUiConfigManager_6.default,
|
|
1933
|
+
focus: FocusManager_2.default,
|
|
1934
|
+
icon: IconManager_2.default,
|
|
1935
|
+
ads: AdManager_1.default,
|
|
1936
|
+
input: RemoteInputManager_1.RemoteInputManager,
|
|
1937
|
+
api: NativeBridge_2.default,
|
|
1938
|
+
back: BackManager_1.default
|
|
1939
|
+
};
|
|
1940
|
+
};
|
|
1941
|
+
var TvUiRoot_1;
|
|
1942
|
+
TvUiRoot.instance = null;
|
|
1943
|
+
TvUiRoot.backHandler = null;
|
|
1944
|
+
TvUiRoot = TvUiRoot_1 = __decorate([
|
|
1945
|
+
ccclass
|
|
1946
|
+
], TvUiRoot);
|
|
1947
|
+
return TvUiRoot;
|
|
1948
|
+
}(cc.Component));
|
|
1949
|
+
exports.default = TvUiRoot;
|
|
1950
|
+
});
|
|
1951
|
+
define("core/TvUi", ["require", "exports", "core/TvUiRoot", "core/BackManager", "core/NativeBridge", "config/TvUiConfigManager", "focus/FocusManager", "icon/IconManager", "ad/AdManager", "input/RemoteInputManager"], function (require, exports, TvUiRoot_2, BackManager_2, NativeBridge_3, TvUiConfigManager_7, FocusManager_3, IconManager_3, AdManager_2, RemoteInputManager_2) {
|
|
1952
|
+
"use strict";
|
|
1953
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1954
|
+
var TvUi = (function () {
|
|
1955
|
+
function TvUi() {
|
|
1956
|
+
}
|
|
1957
|
+
TvUi.init = function (config) {
|
|
1958
|
+
TvUiRoot_2.default.ensure(config || {});
|
|
1959
|
+
TvUiRoot_2.default.setBackHandler(function () { return BackManager_2.default.handle(); });
|
|
1960
|
+
NativeBridge_3.default.setNativeCallback(function (action, data) {
|
|
1961
|
+
var runtime = TvUiConfigManager_7.default.getConfig();
|
|
1962
|
+
if (runtime.nativeCallback)
|
|
1963
|
+
runtime.nativeCallback(action, data);
|
|
1964
|
+
});
|
|
1965
|
+
var runtime = TvUiConfigManager_7.default.getConfig();
|
|
1966
|
+
if (!this.initialized && runtime.enableLifecycle !== false) {
|
|
1967
|
+
NativeBridge_3.default.onGameReady();
|
|
1968
|
+
cc.game.on(cc.game.EVENT_HIDE, this.onGameHide, this);
|
|
1969
|
+
cc.game.on(cc.game.EVENT_SHOW, this.onGameShow, this);
|
|
1970
|
+
}
|
|
1971
|
+
this.exposeGlobal();
|
|
1972
|
+
this.initialized = true;
|
|
1973
|
+
};
|
|
1974
|
+
TvUi.destroy = function () {
|
|
1975
|
+
cc.game.off(cc.game.EVENT_HIDE, this.onGameHide, this);
|
|
1976
|
+
cc.game.off(cc.game.EVENT_SHOW, this.onGameShow, this);
|
|
1977
|
+
RemoteInputManager_2.RemoteInputManager.disable();
|
|
1978
|
+
RemoteInputManager_2.RemoteInputManager.clear();
|
|
1979
|
+
TvUiRoot_2.default.setBackHandler(null);
|
|
1980
|
+
FocusManager_3.default.reset();
|
|
1981
|
+
BackManager_2.default.reset();
|
|
1982
|
+
NativeBridge_3.default.setNativeCallback(null);
|
|
1983
|
+
this.initialized = false;
|
|
1984
|
+
};
|
|
1985
|
+
TvUi.exposeGlobal = function () {
|
|
1986
|
+
var runtimeRoot = typeof window !== "undefined" ? window : (typeof global !== "undefined" ? global : null);
|
|
1987
|
+
if (!runtimeRoot)
|
|
1988
|
+
return;
|
|
1989
|
+
runtimeRoot.TvUi = TvUi;
|
|
1990
|
+
runtimeRoot.tvui = TvUi;
|
|
1991
|
+
};
|
|
1992
|
+
TvUi.onGameHide = function () {
|
|
1993
|
+
NativeBridge_3.default.onGamePause();
|
|
1994
|
+
};
|
|
1995
|
+
TvUi.onGameShow = function () {
|
|
1996
|
+
NativeBridge_3.default.onGameResume();
|
|
1997
|
+
};
|
|
1998
|
+
TvUi.root = TvUiRoot_2.default;
|
|
1999
|
+
TvUi.config = TvUiConfigManager_7.default;
|
|
2000
|
+
TvUi.focus = FocusManager_3.default;
|
|
2001
|
+
TvUi.icon = IconManager_3.default;
|
|
2002
|
+
TvUi.ads = AdManager_2.default;
|
|
2003
|
+
TvUi.api = NativeBridge_3.default;
|
|
2004
|
+
TvUi.input = RemoteInputManager_2.RemoteInputManager;
|
|
2005
|
+
TvUi.back = BackManager_2.default;
|
|
2006
|
+
TvUi.initialized = false;
|
|
2007
|
+
return TvUi;
|
|
2008
|
+
}());
|
|
2009
|
+
exports.default = TvUi;
|
|
2010
|
+
});
|
|
2011
|
+
define("toast/UIFunctions", ["require", "exports"], function (require, exports) {
|
|
2012
|
+
"use strict";
|
|
2013
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2014
|
+
var UIFunctions = (function () {
|
|
2015
|
+
function UIFunctions() {
|
|
2016
|
+
}
|
|
2017
|
+
UIFunctions.getChildrenAnimations = function (node) {
|
|
2018
|
+
var animations = [];
|
|
2019
|
+
var anim = node.getComponent(cc.Animation);
|
|
2020
|
+
if (anim)
|
|
2021
|
+
animations.push(anim);
|
|
2022
|
+
for (var i = 0; i < node.childrenCount; i++) {
|
|
2023
|
+
var child = node.children[i];
|
|
2024
|
+
var anim = child.getComponent(cc.Animation);
|
|
2025
|
+
if (anim)
|
|
2026
|
+
animations.push(anim);
|
|
2027
|
+
}
|
|
2028
|
+
return animations;
|
|
2029
|
+
};
|
|
2030
|
+
UIFunctions.stopAnimations = function (animations) {
|
|
2031
|
+
animations.forEach(function (anim) {
|
|
2032
|
+
anim.stop();
|
|
2033
|
+
});
|
|
2034
|
+
};
|
|
2035
|
+
UIFunctions.doShowAnimations = function (animations, finishCallback, target) {
|
|
2036
|
+
var maxDuration = 0;
|
|
2037
|
+
var maxDurationAnimation = null;
|
|
2038
|
+
animations.forEach(function (anim) {
|
|
2039
|
+
var clips = anim.getClips();
|
|
2040
|
+
if (clips.length > 0) {
|
|
2041
|
+
var clip = clips[0];
|
|
2042
|
+
var animState = anim.play(clip.name);
|
|
2043
|
+
animState.wrapMode = cc.WrapMode.Normal;
|
|
2044
|
+
if (clip.duration > maxDuration) {
|
|
2045
|
+
maxDuration = clip.duration;
|
|
2046
|
+
maxDurationAnimation = anim;
|
|
2047
|
+
}
|
|
2048
|
+
}
|
|
2049
|
+
});
|
|
2050
|
+
if (finishCallback) {
|
|
2051
|
+
var func_1 = function () {
|
|
2052
|
+
if (maxDurationAnimation)
|
|
2053
|
+
maxDurationAnimation.off("finished", func_1);
|
|
2054
|
+
finishCallback.call(target);
|
|
2055
|
+
};
|
|
2056
|
+
if (maxDurationAnimation)
|
|
2057
|
+
maxDurationAnimation.on("finished", func_1);
|
|
2058
|
+
else
|
|
2059
|
+
finishCallback.call(target);
|
|
2060
|
+
}
|
|
2061
|
+
};
|
|
2062
|
+
UIFunctions.isAnimationRunning = function (animations) {
|
|
2063
|
+
return false;
|
|
2064
|
+
};
|
|
2065
|
+
UIFunctions.doHideAnimations = function (animations, finishCallback, target) {
|
|
2066
|
+
var hasHideAnimation = false;
|
|
2067
|
+
var maxDuration = 0;
|
|
2068
|
+
var maxDurationAnimation = null;
|
|
2069
|
+
animations.forEach(function (anim) {
|
|
2070
|
+
var clips = anim.getClips();
|
|
2071
|
+
if (clips.length == 2) {
|
|
2072
|
+
var clip = clips[clips.length - 1];
|
|
2073
|
+
hasHideAnimation = true;
|
|
2074
|
+
anim.play(clip.name);
|
|
2075
|
+
if (clip.duration > maxDuration) {
|
|
2076
|
+
maxDuration = clip.duration;
|
|
2077
|
+
maxDurationAnimation = anim;
|
|
2078
|
+
}
|
|
2079
|
+
}
|
|
2080
|
+
else if (clips.length == 1) {
|
|
2081
|
+
var clip = clips[0];
|
|
2082
|
+
hasHideAnimation = true;
|
|
2083
|
+
var animState = anim.play(clip.name);
|
|
2084
|
+
animState.wrapMode = cc.WrapMode.Reverse;
|
|
2085
|
+
if (clip.duration > maxDuration) {
|
|
2086
|
+
maxDuration = clip.duration;
|
|
2087
|
+
maxDurationAnimation = anim;
|
|
2088
|
+
}
|
|
2089
|
+
}
|
|
2090
|
+
});
|
|
2091
|
+
if (maxDurationAnimation && finishCallback) {
|
|
2092
|
+
var func_2 = function () {
|
|
2093
|
+
maxDurationAnimation.off("finished", func_2);
|
|
2094
|
+
finishCallback.call(target);
|
|
2095
|
+
};
|
|
2096
|
+
maxDurationAnimation.on("finished", func_2);
|
|
2097
|
+
}
|
|
2098
|
+
return hasHideAnimation;
|
|
2099
|
+
};
|
|
2100
|
+
UIFunctions.getToggleIndex = function (toggle) {
|
|
2101
|
+
var container = toggle.node.parent;
|
|
2102
|
+
for (var i = 0; i < container.childrenCount; i++) {
|
|
2103
|
+
var child = container.children[i];
|
|
2104
|
+
if (toggle.node == child) {
|
|
2105
|
+
return i;
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
return -1;
|
|
2109
|
+
};
|
|
2110
|
+
UIFunctions.selectToggleIndex = function (toggleContainer, index) {
|
|
2111
|
+
if (toggleContainer == null) {
|
|
2112
|
+
console.warn("[UIFunction.selectToggleIndex] : invalid toggleContainer :");
|
|
2113
|
+
return;
|
|
2114
|
+
}
|
|
2115
|
+
var toggleNode = toggleContainer.children[index];
|
|
2116
|
+
if (toggleNode) {
|
|
2117
|
+
var toggle = toggleNode.getComponent(cc.Toggle);
|
|
2118
|
+
if (toggle) {
|
|
2119
|
+
console.log("[UIFunction.selectToggleIndex] :" + index);
|
|
2120
|
+
toggle.check();
|
|
2121
|
+
}
|
|
2122
|
+
}
|
|
2123
|
+
else {
|
|
2124
|
+
console.warn("[UIFunction.selectToggleIndex] :cannot find toggle with index:" + index);
|
|
2125
|
+
}
|
|
2126
|
+
};
|
|
2127
|
+
UIFunctions.setTouchEnabled = function (node, b) {
|
|
2128
|
+
};
|
|
2129
|
+
UIFunctions.setButtonEnabled = function (btn, b) {
|
|
2130
|
+
btn.node.opacity = b ? 255 : 155;
|
|
2131
|
+
btn.interactable = b;
|
|
2132
|
+
};
|
|
2133
|
+
return UIFunctions;
|
|
2134
|
+
}());
|
|
2135
|
+
exports.default = UIFunctions;
|
|
2136
|
+
});
|
|
2137
|
+
define("toast/ToastComponent", ["require", "exports"], function (require, exports) {
|
|
2138
|
+
"use strict";
|
|
2139
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2140
|
+
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|
2141
|
+
var ToastComponent = (function (_super) {
|
|
2142
|
+
__extends(ToastComponent, _super);
|
|
2143
|
+
function ToastComponent() {
|
|
2144
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
2145
|
+
_this.label = null;
|
|
2146
|
+
return _this;
|
|
2147
|
+
}
|
|
2148
|
+
ToastComponent.prototype.onLoad = function () {
|
|
2149
|
+
};
|
|
2150
|
+
ToastComponent.prototype.start = function () {
|
|
2151
|
+
};
|
|
2152
|
+
ToastComponent.prototype.hide = function (callback) {
|
|
2153
|
+
this.node.active = true;
|
|
2154
|
+
this.node.active = false;
|
|
2155
|
+
if (callback) {
|
|
2156
|
+
callback(this);
|
|
2157
|
+
}
|
|
2158
|
+
};
|
|
2159
|
+
ToastComponent.prototype.show = function (text) {
|
|
2160
|
+
this.label.string = text;
|
|
2161
|
+
};
|
|
2162
|
+
__decorate([
|
|
2163
|
+
property(cc.Label),
|
|
2164
|
+
__metadata("design:type", cc.Label)
|
|
2165
|
+
], ToastComponent.prototype, "label", void 0);
|
|
2166
|
+
ToastComponent = __decorate([
|
|
2167
|
+
ccclass
|
|
2168
|
+
], ToastComponent);
|
|
2169
|
+
return ToastComponent;
|
|
2170
|
+
}(cc.Component));
|
|
2171
|
+
exports.default = ToastComponent;
|
|
2172
|
+
});
|
|
2173
|
+
define("toast/ToastManager", ["require", "exports", "toast/ToastComponent"], function (require, exports, ToastComponent_1) {
|
|
2174
|
+
"use strict";
|
|
2175
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2176
|
+
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|
2177
|
+
var ToastManager = (function () {
|
|
2178
|
+
function ToastManager() {
|
|
2179
|
+
}
|
|
2180
|
+
ToastManager_1 = ToastManager;
|
|
2181
|
+
ToastManager.prototype.init = function () {
|
|
2182
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2183
|
+
var _a;
|
|
2184
|
+
return __generator(this, function (_b) {
|
|
2185
|
+
switch (_b.label) {
|
|
2186
|
+
case 0:
|
|
2187
|
+
this.toastPool = new cc.NodePool();
|
|
2188
|
+
_a = this;
|
|
2189
|
+
return [4, this.loadSpriteFrame('tvui/prefab/Toast')];
|
|
2190
|
+
case 1:
|
|
2191
|
+
_a.prefab = _b.sent();
|
|
2192
|
+
return [2];
|
|
2193
|
+
}
|
|
2194
|
+
});
|
|
2195
|
+
});
|
|
2196
|
+
};
|
|
2197
|
+
ToastManager.prototype.loadSpriteFrame = function (path) {
|
|
2198
|
+
return new Promise(function (resolve, reject) {
|
|
2199
|
+
cc.loader.loadRes(path, cc.Prefab, function (err, spriteFrame) {
|
|
2200
|
+
if (err) {
|
|
2201
|
+
reject(err);
|
|
2202
|
+
}
|
|
2203
|
+
else {
|
|
2204
|
+
resolve(spriteFrame);
|
|
2205
|
+
}
|
|
2206
|
+
});
|
|
2207
|
+
});
|
|
2208
|
+
};
|
|
2209
|
+
ToastManager.prototype.onDestroy = function () {
|
|
2210
|
+
this.toastPool.clear();
|
|
2211
|
+
};
|
|
2212
|
+
ToastManager.prototype.make = function (text, dur) {
|
|
2213
|
+
if (dur === void 0) { dur = 1500; }
|
|
2214
|
+
var node = this.toastPool.get();
|
|
2215
|
+
var toastComp = null;
|
|
2216
|
+
if (node == null) {
|
|
2217
|
+
node = cc.instantiate(this.prefab);
|
|
2218
|
+
toastComp = node.getComponent(ToastComponent_1.default);
|
|
2219
|
+
if (toastComp == null) {
|
|
2220
|
+
console.warn("Toast.make : Toast Prefab must contains ToastComponent");
|
|
2221
|
+
}
|
|
2222
|
+
}
|
|
2223
|
+
else {
|
|
2224
|
+
toastComp = node.getComponent(ToastComponent_1.default);
|
|
2225
|
+
}
|
|
2226
|
+
if (node.parent == null)
|
|
2227
|
+
cc.director.getScene().addChild(node, cc.macro.MAX_ZINDEX);
|
|
2228
|
+
node.setPosition(cc.v2(cc.winSize.width / 2, cc.winSize.height / 2));
|
|
2229
|
+
this.show(toastComp, text, dur);
|
|
2230
|
+
return toastComp;
|
|
2231
|
+
};
|
|
2232
|
+
ToastManager.prototype.show = function (toastComp, text, dur) {
|
|
2233
|
+
var _this = this;
|
|
2234
|
+
toastComp.show(text);
|
|
2235
|
+
setTimeout(function (_) {
|
|
2236
|
+
toastComp.hide(function (_) {
|
|
2237
|
+
_this.toastPool.put(toastComp.node);
|
|
2238
|
+
console.log("Toast.hide toastpool size:", _this.toastPool.size());
|
|
2239
|
+
});
|
|
2240
|
+
}, dur);
|
|
2241
|
+
};
|
|
2242
|
+
var ToastManager_1;
|
|
2243
|
+
ToastManager.Inst = new ToastManager_1();
|
|
2244
|
+
ToastManager = ToastManager_1 = __decorate([
|
|
2245
|
+
ccclass
|
|
2246
|
+
], ToastManager);
|
|
2247
|
+
return ToastManager;
|
|
2248
|
+
}());
|
|
2249
|
+
exports.default = ToastManager;
|
|
2250
|
+
});
|
|
2251
|
+
define("Info", ["require", "exports", "core/TvUi", "toast/ToastManager"], function (require, exports, TvUi_1, ToastManager_2) {
|
|
2252
|
+
"use strict";
|
|
2253
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2254
|
+
exports.showRewardVideo = showRewardVideo;
|
|
2255
|
+
function getRuntimeTvUi() {
|
|
2256
|
+
var root = typeof window != "undefined" ? window : null;
|
|
2257
|
+
return TvUi_1.default || (root && (root.TvUi || root.tvui)) || null;
|
|
2258
|
+
}
|
|
2259
|
+
function showRewardVideo(scene, rewardType, callback, target, hooks) {
|
|
2260
|
+
var finishFired = false;
|
|
2261
|
+
var fireFinish = function () {
|
|
2262
|
+
if (finishFired) {
|
|
2263
|
+
return;
|
|
2264
|
+
}
|
|
2265
|
+
finishFired = true;
|
|
2266
|
+
hooks && hooks.onFinish && hooks.onFinish.call(target);
|
|
2267
|
+
};
|
|
2268
|
+
var onSuccess = function () {
|
|
2269
|
+
try {
|
|
2270
|
+
callback && callback.call(target);
|
|
2271
|
+
}
|
|
2272
|
+
finally {
|
|
2273
|
+
fireFinish();
|
|
2274
|
+
}
|
|
2275
|
+
};
|
|
2276
|
+
var onClose = function () {
|
|
2277
|
+
ToastManager_2.default.Inst.make("必须看完视频,才能获取奖励");
|
|
2278
|
+
hooks && hooks.onClose && hooks.onClose.call(target);
|
|
2279
|
+
fireFinish();
|
|
2280
|
+
};
|
|
2281
|
+
var onFail = function () {
|
|
2282
|
+
ToastManager_2.default.Inst.make("广告暂不可用,请稍后再试");
|
|
2283
|
+
hooks && hooks.onFail && hooks.onFail.call(target);
|
|
2284
|
+
fireFinish();
|
|
2285
|
+
};
|
|
2286
|
+
var tvUi = getRuntimeTvUi();
|
|
2287
|
+
if (tvUi && tvUi.ads && tvUi.ads.showReward && tvUi.api && tvUi.api.hasBridge && tvUi.api.hasBridge()) {
|
|
2288
|
+
tvUi.ads.showReward({
|
|
2289
|
+
scene: scene,
|
|
2290
|
+
rewardType: rewardType,
|
|
2291
|
+
onSuccess: onSuccess,
|
|
2292
|
+
onClose: onClose,
|
|
2293
|
+
onFail: onFail,
|
|
2294
|
+
onFinish: fireFinish
|
|
2295
|
+
});
|
|
2296
|
+
return;
|
|
2297
|
+
}
|
|
2298
|
+
callback && callback.call(target);
|
|
2299
|
+
return;
|
|
2300
|
+
}
|
|
2301
|
+
});
|
|
2302
|
+
define("Loader", ["require", "exports"], function (require, exports) {
|
|
2303
|
+
"use strict";
|
|
2304
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2305
|
+
exports.Loader = void 0;
|
|
2306
|
+
var Loader = (function () {
|
|
2307
|
+
function Loader() {
|
|
2308
|
+
}
|
|
2309
|
+
Loader.loadRes = function (path, progressCallback) {
|
|
2310
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2311
|
+
return __generator(this, function (_a) {
|
|
2312
|
+
return [2, new Promise(function (resolve, reject) {
|
|
2313
|
+
cc.loader.loadRes(path, function (completedCount, totalCount, item) {
|
|
2314
|
+
if (progressCallback) {
|
|
2315
|
+
progressCallback(completedCount / totalCount);
|
|
2316
|
+
}
|
|
2317
|
+
}, function (error, asset) {
|
|
2318
|
+
if (error) {
|
|
2319
|
+
reject(error);
|
|
2320
|
+
}
|
|
2321
|
+
else {
|
|
2322
|
+
resolve(asset);
|
|
2323
|
+
}
|
|
2324
|
+
});
|
|
2325
|
+
})];
|
|
2326
|
+
});
|
|
2327
|
+
});
|
|
2328
|
+
};
|
|
2329
|
+
Loader.loadResDir = function (dir, progressCallback) {
|
|
2330
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2331
|
+
return __generator(this, function (_a) {
|
|
2332
|
+
return [2, new Promise(function (resolve, reject) {
|
|
2333
|
+
cc.loader.loadResDir(dir, function (completedCount, totalCount, item) {
|
|
2334
|
+
if (progressCallback) {
|
|
2335
|
+
progressCallback(completedCount / totalCount, completedCount, totalCount);
|
|
2336
|
+
}
|
|
2337
|
+
}, function (error, assets) {
|
|
2338
|
+
if (error) {
|
|
2339
|
+
reject(error);
|
|
2340
|
+
}
|
|
2341
|
+
else {
|
|
2342
|
+
resolve(assets);
|
|
2343
|
+
}
|
|
2344
|
+
});
|
|
2345
|
+
})];
|
|
2346
|
+
});
|
|
2347
|
+
});
|
|
2348
|
+
};
|
|
2349
|
+
Loader.loadBatch = function (resources, progressCallback) {
|
|
2350
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2351
|
+
var results, totalCount, completedCount, loadPromises;
|
|
2352
|
+
var _this = this;
|
|
2353
|
+
return __generator(this, function (_a) {
|
|
2354
|
+
switch (_a.label) {
|
|
2355
|
+
case 0:
|
|
2356
|
+
results = new Map();
|
|
2357
|
+
totalCount = resources.length;
|
|
2358
|
+
completedCount = 0;
|
|
2359
|
+
loadPromises = resources.map(function (res, index) {
|
|
2360
|
+
var key = res.key || res.path;
|
|
2361
|
+
return _this.loadRes(res.path)
|
|
2362
|
+
.then(function (asset) {
|
|
2363
|
+
results.set(key, asset);
|
|
2364
|
+
completedCount++;
|
|
2365
|
+
if (progressCallback) {
|
|
2366
|
+
progressCallback(completedCount / totalCount, completedCount, totalCount);
|
|
2367
|
+
}
|
|
2368
|
+
})
|
|
2369
|
+
.catch(function (error) {
|
|
2370
|
+
console.error("Failed to load resource: ".concat(res.path), error);
|
|
2371
|
+
completedCount++;
|
|
2372
|
+
if (progressCallback) {
|
|
2373
|
+
progressCallback(completedCount / totalCount, completedCount, totalCount);
|
|
2374
|
+
}
|
|
2375
|
+
});
|
|
2376
|
+
});
|
|
2377
|
+
return [4, Promise.all(loadPromises)];
|
|
2378
|
+
case 1:
|
|
2379
|
+
_a.sent();
|
|
2380
|
+
return [2, results];
|
|
2381
|
+
}
|
|
2382
|
+
});
|
|
2383
|
+
});
|
|
2384
|
+
};
|
|
2385
|
+
return Loader;
|
|
2386
|
+
}());
|
|
2387
|
+
exports.Loader = Loader;
|
|
2388
|
+
});
|
|
2389
|
+
define("PlatformAdapter", ["require", "exports", "BtnExtra", "core/TvUi", "Info", "Loader", "toast/ToastManager"], function (require, exports, BtnExtra_1, TvUi_2, Info_1, Loader_1, ToastManager_3) {
|
|
2390
|
+
"use strict";
|
|
2391
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2392
|
+
exports.PlatformAdapter = void 0;
|
|
2393
|
+
var PlatformAdapter = (function () {
|
|
2394
|
+
function PlatformAdapter() {
|
|
2395
|
+
}
|
|
2396
|
+
PlatformAdapter.init = function () {
|
|
2397
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2398
|
+
return __generator(this, function (_a) {
|
|
2399
|
+
switch (_a.label) {
|
|
2400
|
+
case 0: return [4, ToastManager_3.default.Inst.init()];
|
|
2401
|
+
case 1:
|
|
2402
|
+
_a.sent();
|
|
2403
|
+
TvUi_2.default.init({
|
|
2404
|
+
cpId: this.cpId,
|
|
2405
|
+
version: this.version,
|
|
2406
|
+
designWidth: this.designWidth,
|
|
2407
|
+
designHeight: this.designHeight,
|
|
2408
|
+
enableCursor: true,
|
|
2409
|
+
configPath: "tvui/config/default",
|
|
2410
|
+
focus: {
|
|
2411
|
+
enabled: true,
|
|
2412
|
+
defaultIconKey: "default"
|
|
2413
|
+
},
|
|
2414
|
+
adSdk: {
|
|
2415
|
+
platform: "xiaomi"
|
|
2416
|
+
},
|
|
2417
|
+
ads: {
|
|
2418
|
+
reward: {
|
|
2419
|
+
enabled: true,
|
|
2420
|
+
mode: "reward",
|
|
2421
|
+
channels: [
|
|
2422
|
+
{ type: "aggregate", priority: 1, reward_type: "reward" },
|
|
2423
|
+
{ type: "mock", priority: 100 }
|
|
2424
|
+
]
|
|
2425
|
+
},
|
|
2426
|
+
popup: {
|
|
2427
|
+
enabled: true,
|
|
2428
|
+
mode: "popup",
|
|
2429
|
+
channels: [
|
|
2430
|
+
{ type: "aggregate", priority: 1 },
|
|
2431
|
+
{ type: "mock", priority: 100 }
|
|
2432
|
+
]
|
|
2433
|
+
},
|
|
2434
|
+
game: {
|
|
2435
|
+
enabled: true,
|
|
2436
|
+
mode: "popup",
|
|
2437
|
+
channels: [
|
|
2438
|
+
{ type: "aggregate", priority: 1 },
|
|
2439
|
+
{ type: "mock", priority: 100 }
|
|
2440
|
+
]
|
|
2441
|
+
}
|
|
2442
|
+
}
|
|
2443
|
+
});
|
|
2444
|
+
return [2];
|
|
2445
|
+
}
|
|
2446
|
+
});
|
|
2447
|
+
});
|
|
2448
|
+
};
|
|
2449
|
+
PlatformAdapter.showRewardVideo = function (scene, rewardType, callback, target) {
|
|
2450
|
+
(0, Info_1.showRewardVideo)(scene, rewardType, callback, target);
|
|
2451
|
+
};
|
|
2452
|
+
PlatformAdapter.registerButton = function (button) {
|
|
2453
|
+
var sprite = button.getComponent(cc.Sprite);
|
|
2454
|
+
var btnExtra = button.getComponent(BtnExtra_1.default);
|
|
2455
|
+
var onFocus = function () {
|
|
2456
|
+
sprite.spriteFrame = btnExtra.hoverSprite;
|
|
2457
|
+
};
|
|
2458
|
+
var onRomove = function () {
|
|
2459
|
+
sprite.spriteFrame = btnExtra.normalSprite;
|
|
2460
|
+
};
|
|
2461
|
+
TvUi_2.default.focus.register(button, {
|
|
2462
|
+
onFocus: onFocus,
|
|
2463
|
+
onBlur: onRomove,
|
|
2464
|
+
});
|
|
2465
|
+
};
|
|
2466
|
+
PlatformAdapter.registerButtonByName = function (name, parent) {
|
|
2467
|
+
if (parent === void 0) { parent = null; }
|
|
2468
|
+
if (!parent)
|
|
2469
|
+
parent = cc.director.getScene();
|
|
2470
|
+
var button = this.findChildByName(parent, name).getComponent(cc.Button);
|
|
2471
|
+
if (!button)
|
|
2472
|
+
return;
|
|
2473
|
+
this.registerButton(button);
|
|
2474
|
+
};
|
|
2475
|
+
PlatformAdapter.focusButtonByName = function (name, parent) {
|
|
2476
|
+
if (parent === void 0) { parent = null; }
|
|
2477
|
+
if (!parent)
|
|
2478
|
+
parent = cc.director.getScene();
|
|
2479
|
+
var button = this.findChildByName(parent, name).getComponent(cc.Button);
|
|
2480
|
+
if (!button)
|
|
2481
|
+
return;
|
|
2482
|
+
TvUi_2.default.focus.focus(button.node);
|
|
2483
|
+
};
|
|
2484
|
+
PlatformAdapter.focusButton = function (btn) {
|
|
2485
|
+
TvUi_2.default.focus.focus(btn.node);
|
|
2486
|
+
};
|
|
2487
|
+
PlatformAdapter.findChildByName = function (parent, name) {
|
|
2488
|
+
if (parent.name === name) {
|
|
2489
|
+
return parent;
|
|
2490
|
+
}
|
|
2491
|
+
for (var i = 0; i < parent.children.length; i++) {
|
|
2492
|
+
var result = this.findChildByName(parent.children[i], name);
|
|
2493
|
+
if (result) {
|
|
2494
|
+
return result;
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
return null;
|
|
2498
|
+
};
|
|
2499
|
+
PlatformAdapter.showWindow = function (window) {
|
|
2500
|
+
TvUi_2.default.focus.pushScope(window.uuid, window);
|
|
2501
|
+
TvUi_2.default.focus.registerButtons(window);
|
|
2502
|
+
};
|
|
2503
|
+
PlatformAdapter.hideWindow = function (window) {
|
|
2504
|
+
TvUi_2.default.focus.unregisterByRoot(window);
|
|
2505
|
+
TvUi_2.default.focus.popScope(window.uuid);
|
|
2506
|
+
};
|
|
2507
|
+
PlatformAdapter.refreshWindow = function (window) {
|
|
2508
|
+
TvUi_2.default.focus.registerButtons(window);
|
|
2509
|
+
};
|
|
2510
|
+
PlatformAdapter.showExitWin = function () {
|
|
2511
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2512
|
+
var exitPfb, exitWin;
|
|
2513
|
+
return __generator(this, function (_a) {
|
|
2514
|
+
switch (_a.label) {
|
|
2515
|
+
case 0: return [4, Loader_1.Loader.loadRes('tvui/prefab/ExitWin')];
|
|
2516
|
+
case 1:
|
|
2517
|
+
exitPfb = _a.sent();
|
|
2518
|
+
exitWin = cc.instantiate(exitPfb);
|
|
2519
|
+
exitWin.parent = cc.director.getScene();
|
|
2520
|
+
exitWin.setPosition(cc.v2(cc.winSize.width / 2, cc.winSize.height / 2));
|
|
2521
|
+
return [2];
|
|
2522
|
+
}
|
|
2523
|
+
});
|
|
2524
|
+
});
|
|
2525
|
+
};
|
|
2526
|
+
PlatformAdapter.cpId = "xhbj";
|
|
2527
|
+
PlatformAdapter.version = "1.0.0";
|
|
2528
|
+
PlatformAdapter.designWidth = 1920;
|
|
2529
|
+
PlatformAdapter.designHeight = 1080;
|
|
2530
|
+
return PlatformAdapter;
|
|
2531
|
+
}());
|
|
2532
|
+
exports.PlatformAdapter = PlatformAdapter;
|
|
2533
|
+
});
|
|
2534
|
+
define("ExitWin", ["require", "exports", "core/TvUi", "PlatformAdapter"], function (require, exports, TvUi_3, PlatformAdapter_1) {
|
|
2535
|
+
"use strict";
|
|
2536
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2537
|
+
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|
2538
|
+
var ExitWin = (function (_super) {
|
|
2539
|
+
__extends(ExitWin, _super);
|
|
2540
|
+
function ExitWin() {
|
|
2541
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
2542
|
+
_this.btnCancel = null;
|
|
2543
|
+
_this.btnExit = null;
|
|
2544
|
+
return _this;
|
|
2545
|
+
}
|
|
2546
|
+
ExitWin.prototype.start = function () {
|
|
2547
|
+
this.btnCancel.node.on(cc.Node.EventType.TOUCH_END, this.onClickCancel, this);
|
|
2548
|
+
this.btnExit.node.on(cc.Node.EventType.TOUCH_END, this.onClickExit, this);
|
|
2549
|
+
};
|
|
2550
|
+
ExitWin.prototype.onClickCancel = function () {
|
|
2551
|
+
this.node.destroy();
|
|
2552
|
+
};
|
|
2553
|
+
ExitWin.prototype.onClickExit = function () {
|
|
2554
|
+
if (TvUi_3.default.api.hasBridge()) {
|
|
2555
|
+
TvUi_3.default.api.onExitGame();
|
|
2556
|
+
return;
|
|
2557
|
+
}
|
|
2558
|
+
cc.game.end();
|
|
2559
|
+
};
|
|
2560
|
+
ExitWin.prototype.onEnable = function () {
|
|
2561
|
+
PlatformAdapter_1.PlatformAdapter.showWindow(this.node);
|
|
2562
|
+
PlatformAdapter_1.PlatformAdapter.registerButton(this.btnCancel);
|
|
2563
|
+
PlatformAdapter_1.PlatformAdapter.registerButton(this.btnExit);
|
|
2564
|
+
};
|
|
2565
|
+
ExitWin.prototype.onDisable = function () {
|
|
2566
|
+
PlatformAdapter_1.PlatformAdapter.hideWindow(this.node);
|
|
2567
|
+
};
|
|
2568
|
+
__decorate([
|
|
2569
|
+
property(cc.Button),
|
|
2570
|
+
__metadata("design:type", cc.Button)
|
|
2571
|
+
], ExitWin.prototype, "btnCancel", void 0);
|
|
2572
|
+
__decorate([
|
|
2573
|
+
property(cc.Button),
|
|
2574
|
+
__metadata("design:type", cc.Button)
|
|
2575
|
+
], ExitWin.prototype, "btnExit", void 0);
|
|
2576
|
+
ExitWin = __decorate([
|
|
2577
|
+
ccclass
|
|
2578
|
+
], ExitWin);
|
|
2579
|
+
return ExitWin;
|
|
2580
|
+
}(cc.Component));
|
|
2581
|
+
exports.default = ExitWin;
|
|
2582
|
+
});
|
|
2583
|
+
define("ad/AdSlot", ["require", "exports", "ad/AdManager"], function (require, exports, AdManager_3) {
|
|
2584
|
+
"use strict";
|
|
2585
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2586
|
+
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|
2587
|
+
var AdSlot = (function (_super) {
|
|
2588
|
+
__extends(AdSlot, _super);
|
|
2589
|
+
function AdSlot() {
|
|
2590
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
2591
|
+
_this.slotId = "popup";
|
|
2592
|
+
_this.showOnLoad = false;
|
|
2593
|
+
return _this;
|
|
2594
|
+
}
|
|
2595
|
+
AdSlot.prototype.onEnable = function () {
|
|
2596
|
+
if (this.showOnLoad)
|
|
2597
|
+
this.show();
|
|
2598
|
+
};
|
|
2599
|
+
AdSlot.prototype.onDisable = function () {
|
|
2600
|
+
this.hide();
|
|
2601
|
+
};
|
|
2602
|
+
AdSlot.prototype.show = function () {
|
|
2603
|
+
AdManager_3.default.showSlot(this.slotId, { container: this.node });
|
|
2604
|
+
};
|
|
2605
|
+
AdSlot.prototype.hide = function () {
|
|
2606
|
+
AdManager_3.default.hideSlot(this.slotId);
|
|
2607
|
+
};
|
|
2608
|
+
AdSlot.prototype.refresh = function () {
|
|
2609
|
+
AdManager_3.default.refreshSlot(this.slotId, { container: this.node });
|
|
2610
|
+
};
|
|
2611
|
+
AdSlot.show = function (slotId) {
|
|
2612
|
+
return AdManager_3.default.showSlot(slotId);
|
|
2613
|
+
};
|
|
2614
|
+
AdSlot.hide = function (slotId) {
|
|
2615
|
+
AdManager_3.default.hideSlot(slotId);
|
|
2616
|
+
};
|
|
2617
|
+
AdSlot.refresh = function (slotId) {
|
|
2618
|
+
return AdManager_3.default.refreshSlot(slotId);
|
|
2619
|
+
};
|
|
2620
|
+
__decorate([
|
|
2621
|
+
property,
|
|
2622
|
+
__metadata("design:type", String)
|
|
2623
|
+
], AdSlot.prototype, "slotId", void 0);
|
|
2624
|
+
__decorate([
|
|
2625
|
+
property,
|
|
2626
|
+
__metadata("design:type", Boolean)
|
|
2627
|
+
], AdSlot.prototype, "showOnLoad", void 0);
|
|
2628
|
+
AdSlot = __decorate([
|
|
2629
|
+
ccclass
|
|
2630
|
+
], AdSlot);
|
|
2631
|
+
return AdSlot;
|
|
2632
|
+
}(cc.Component));
|
|
2633
|
+
exports.default = AdSlot;
|
|
2634
|
+
});
|
|
2635
|
+
define("focus/FocusItem", ["require", "exports", "focus/FocusManager"], function (require, exports, FocusManager_4) {
|
|
2636
|
+
"use strict";
|
|
2637
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2638
|
+
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|
2639
|
+
var FocusItem = (function (_super) {
|
|
2640
|
+
__extends(FocusItem, _super);
|
|
2641
|
+
function FocusItem() {
|
|
2642
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
2643
|
+
_this.focusId = "";
|
|
2644
|
+
_this.scopeId = "";
|
|
2645
|
+
_this.iconKey = "";
|
|
2646
|
+
_this.up = "";
|
|
2647
|
+
_this.down = "";
|
|
2648
|
+
_this.left = "";
|
|
2649
|
+
_this.right = "";
|
|
2650
|
+
_this.focusScale = 1.08;
|
|
2651
|
+
_this.autoRegister = true;
|
|
2652
|
+
return _this;
|
|
2653
|
+
}
|
|
2654
|
+
FocusItem.prototype.onEnable = function () {
|
|
2655
|
+
if (this.autoRegister)
|
|
2656
|
+
FocusManager_4.default.register(this);
|
|
2657
|
+
};
|
|
2658
|
+
FocusItem.prototype.onDisable = function () {
|
|
2659
|
+
if (this.autoRegister)
|
|
2660
|
+
FocusManager_4.default.unregister(this.node);
|
|
2661
|
+
};
|
|
2662
|
+
FocusItem.prototype.onFocus = function () {
|
|
2663
|
+
};
|
|
2664
|
+
FocusItem.prototype.onBlur = function () {
|
|
2665
|
+
};
|
|
2666
|
+
FocusItem.prototype.onConfirm = function () {
|
|
2667
|
+
var button = this.node.getComponent(cc.Button);
|
|
2668
|
+
if (button && button.interactable) {
|
|
2669
|
+
cc.Component.EventHandler.emitEvents(button.clickEvents, null);
|
|
2670
|
+
}
|
|
2671
|
+
else {
|
|
2672
|
+
var event = new cc.Event.EventCustom(cc.Node.EventType.TOUCH_END, true);
|
|
2673
|
+
this.node.emit(cc.Node.EventType.TOUCH_END, event);
|
|
2674
|
+
}
|
|
2675
|
+
};
|
|
2676
|
+
__decorate([
|
|
2677
|
+
property,
|
|
2678
|
+
__metadata("design:type", String)
|
|
2679
|
+
], FocusItem.prototype, "focusId", void 0);
|
|
2680
|
+
__decorate([
|
|
2681
|
+
property,
|
|
2682
|
+
__metadata("design:type", String)
|
|
2683
|
+
], FocusItem.prototype, "scopeId", void 0);
|
|
2684
|
+
__decorate([
|
|
2685
|
+
property,
|
|
2686
|
+
__metadata("design:type", String)
|
|
2687
|
+
], FocusItem.prototype, "iconKey", void 0);
|
|
2688
|
+
__decorate([
|
|
2689
|
+
property,
|
|
2690
|
+
__metadata("design:type", String)
|
|
2691
|
+
], FocusItem.prototype, "up", void 0);
|
|
2692
|
+
__decorate([
|
|
2693
|
+
property,
|
|
2694
|
+
__metadata("design:type", String)
|
|
2695
|
+
], FocusItem.prototype, "down", void 0);
|
|
2696
|
+
__decorate([
|
|
2697
|
+
property,
|
|
2698
|
+
__metadata("design:type", String)
|
|
2699
|
+
], FocusItem.prototype, "left", void 0);
|
|
2700
|
+
__decorate([
|
|
2701
|
+
property,
|
|
2702
|
+
__metadata("design:type", String)
|
|
2703
|
+
], FocusItem.prototype, "right", void 0);
|
|
2704
|
+
__decorate([
|
|
2705
|
+
property,
|
|
2706
|
+
__metadata("design:type", Number)
|
|
2707
|
+
], FocusItem.prototype, "focusScale", void 0);
|
|
2708
|
+
__decorate([
|
|
2709
|
+
property,
|
|
2710
|
+
__metadata("design:type", Boolean)
|
|
2711
|
+
], FocusItem.prototype, "autoRegister", void 0);
|
|
2712
|
+
FocusItem = __decorate([
|
|
2713
|
+
ccclass
|
|
2714
|
+
], FocusItem);
|
|
2715
|
+
return FocusItem;
|
|
2716
|
+
}(cc.Component));
|
|
2717
|
+
exports.default = FocusItem;
|
|
2718
|
+
});
|
|
2719
|
+
define("icon/IconConfig", ["require", "exports"], function (require, exports) {
|
|
2720
|
+
"use strict";
|
|
2721
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2722
|
+
});
|
|
2723
|
+
define("toast/TvExitConfirmDialog", ["require", "exports", "core/TvUi"], function (require, exports, TvUi_4) {
|
|
2724
|
+
"use strict";
|
|
2725
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2726
|
+
var ccclass = cc._decorator.ccclass;
|
|
2727
|
+
var TvExitConfirmDialog = (function (_super) {
|
|
2728
|
+
__extends(TvExitConfirmDialog, _super);
|
|
2729
|
+
function TvExitConfirmDialog() {
|
|
2730
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
2731
|
+
_this.resolver = null;
|
|
2732
|
+
_this.closed = false;
|
|
2733
|
+
_this.tvFocusScopeId = "modal:tvui/tv_exit_confirm";
|
|
2734
|
+
return _this;
|
|
2735
|
+
}
|
|
2736
|
+
TvExitConfirmDialog_1 = TvExitConfirmDialog;
|
|
2737
|
+
TvExitConfirmDialog.show = function (onExitCallback) {
|
|
2738
|
+
if (onExitCallback === void 0) { onExitCallback = null; }
|
|
2739
|
+
var resolveDialog;
|
|
2740
|
+
var promise = new Promise(function (resolve) {
|
|
2741
|
+
resolveDialog = resolve;
|
|
2742
|
+
});
|
|
2743
|
+
TvExitConfirmDialog_1.pendingPromise = promise;
|
|
2744
|
+
var parent = TvExitConfirmDialog_1.getDialogParent();
|
|
2745
|
+
if (!parent) {
|
|
2746
|
+
resolveDialog(false);
|
|
2747
|
+
return promise;
|
|
2748
|
+
}
|
|
2749
|
+
var node = new cc.Node("TvExitConfirmDialog");
|
|
2750
|
+
var size = TvExitConfirmDialog_1.getParentSize(parent);
|
|
2751
|
+
node.setContentSize(size);
|
|
2752
|
+
node.setPosition(0, 0);
|
|
2753
|
+
node.zIndex = 5000;
|
|
2754
|
+
node.addComponent(cc.BlockInputEvents);
|
|
2755
|
+
parent.addChild(node, 5000);
|
|
2756
|
+
var dialog = node.addComponent(TvExitConfirmDialog_1);
|
|
2757
|
+
TvExitConfirmDialog_1.currentDialog = dialog;
|
|
2758
|
+
dialog.open(resolveDialog);
|
|
2759
|
+
dialog.onExitCallback = onExitCallback;
|
|
2760
|
+
return promise;
|
|
2761
|
+
};
|
|
2762
|
+
TvExitConfirmDialog.getDialogParent = function () {
|
|
2763
|
+
var canvas = cc.find("Canvas");
|
|
2764
|
+
if (canvas)
|
|
2765
|
+
return canvas;
|
|
2766
|
+
var scene = cc.director.getScene();
|
|
2767
|
+
return scene;
|
|
2768
|
+
};
|
|
2769
|
+
TvExitConfirmDialog.getParentSize = function (parent) {
|
|
2770
|
+
var width = parent && parent.width ? parent.width : cc.winSize.width;
|
|
2771
|
+
var height = parent && parent.height ? parent.height : cc.winSize.height;
|
|
2772
|
+
return cc.size(width || 1920, height || 1080);
|
|
2773
|
+
};
|
|
2774
|
+
TvExitConfirmDialog.clearPending = function (dialog) {
|
|
2775
|
+
if (TvExitConfirmDialog_1.currentDialog == dialog) {
|
|
2776
|
+
}
|
|
2777
|
+
};
|
|
2778
|
+
TvExitConfirmDialog.prototype.open = function (resolveDialog) {
|
|
2779
|
+
var _this = this;
|
|
2780
|
+
this.resolver = resolveDialog;
|
|
2781
|
+
this.loadSprites(function (sprites) {
|
|
2782
|
+
if (_this.closed || !_this.node || !_this.node.isValid)
|
|
2783
|
+
return;
|
|
2784
|
+
_this.buildView(sprites);
|
|
2785
|
+
_this.registerTvControls();
|
|
2786
|
+
}, function () {
|
|
2787
|
+
_this.close(false);
|
|
2788
|
+
});
|
|
2789
|
+
};
|
|
2790
|
+
TvExitConfirmDialog.prototype.loadSprites = function (onComplete, onError) {
|
|
2791
|
+
if (TvExitConfirmDialog_1.spriteCache) {
|
|
2792
|
+
onComplete(TvExitConfirmDialog_1.spriteCache);
|
|
2793
|
+
return;
|
|
2794
|
+
}
|
|
2795
|
+
var result = {};
|
|
2796
|
+
var paths = [
|
|
2797
|
+
{ key: "title", path: "tvui/tv_exit/退出游戏" },
|
|
2798
|
+
{ key: "frame", path: "tvui/tv_exit/框" },
|
|
2799
|
+
{ key: "cancelNormal", path: "tvui/tv_exit/取消按钮_普通" },
|
|
2800
|
+
{ key: "cancelSelected", path: "tvui/tv_exit/取消按钮_选中" },
|
|
2801
|
+
{ key: "confirmNormal", path: "tvui/tv_exit/确认按钮_普通" },
|
|
2802
|
+
{ key: "confirmSelected", path: "tvui/tv_exit/确认按钮_选中" }
|
|
2803
|
+
];
|
|
2804
|
+
var waiting = paths.length;
|
|
2805
|
+
var failed = false;
|
|
2806
|
+
var _loop_1 = function (i) {
|
|
2807
|
+
var item = paths[i];
|
|
2808
|
+
cc.loader.loadRes(item.path, cc.SpriteFrame, function (error, frame) {
|
|
2809
|
+
if (failed)
|
|
2810
|
+
return;
|
|
2811
|
+
if (error || !frame) {
|
|
2812
|
+
failed = true;
|
|
2813
|
+
console.warn("[TvExitConfirmDialog] load sprite failed:", item.path, error);
|
|
2814
|
+
onError();
|
|
2815
|
+
return;
|
|
2816
|
+
}
|
|
2817
|
+
result[item.key] = frame;
|
|
2818
|
+
waiting--;
|
|
2819
|
+
if (waiting <= 0) {
|
|
2820
|
+
TvExitConfirmDialog_1.spriteCache = result;
|
|
2821
|
+
onComplete(TvExitConfirmDialog_1.spriteCache);
|
|
2822
|
+
}
|
|
2823
|
+
});
|
|
2824
|
+
};
|
|
2825
|
+
for (var i = 0; i < paths.length; i++) {
|
|
2826
|
+
_loop_1(i);
|
|
2827
|
+
}
|
|
2828
|
+
};
|
|
2829
|
+
TvExitConfirmDialog.prototype.buildView = function (sprites) {
|
|
2830
|
+
var size = TvExitConfirmDialog_1.getParentSize(this.node.parent);
|
|
2831
|
+
this.node.setContentSize(size);
|
|
2832
|
+
this.createMask(size);
|
|
2833
|
+
var frameY = 30;
|
|
2834
|
+
var titleY = frameY + 100;
|
|
2835
|
+
var buttonY = -150;
|
|
2836
|
+
var buttonOffsetX = 195;
|
|
2837
|
+
var frameNode = this.createSpriteNode("frame", sprites.frame, 959, 552);
|
|
2838
|
+
this.node.addChild(frameNode, 1);
|
|
2839
|
+
frameNode.setPosition(0, frameY);
|
|
2840
|
+
this.confirmState = this.createDialogButton("confirm", sprites.confirmNormal, sprites.confirmSelected, -buttonOffsetX, buttonY, true);
|
|
2841
|
+
this.cancelState = this.createDialogButton("cancel", sprites.cancelNormal, sprites.cancelSelected, buttonOffsetX, buttonY, false);
|
|
2842
|
+
frameNode.addChild(this.confirmState.node, 2);
|
|
2843
|
+
frameNode.addChild(this.cancelState.node, 2);
|
|
2844
|
+
};
|
|
2845
|
+
TvExitConfirmDialog.prototype.createMask = function (size) {
|
|
2846
|
+
var mask = new cc.Node("mask");
|
|
2847
|
+
mask.setContentSize(size);
|
|
2848
|
+
mask.addComponent(cc.BlockInputEvents);
|
|
2849
|
+
var graphics = mask.addComponent(cc.Graphics);
|
|
2850
|
+
graphics.fillColor = cc.color(0, 0, 0, 165);
|
|
2851
|
+
graphics.rect(-size.width * 0.5, -size.height * 0.5, size.width, size.height);
|
|
2852
|
+
graphics.fill();
|
|
2853
|
+
this.node.addChild(mask, 0);
|
|
2854
|
+
};
|
|
2855
|
+
TvExitConfirmDialog.prototype.createSpriteNode = function (name, frame, width, height) {
|
|
2856
|
+
var node = new cc.Node(name);
|
|
2857
|
+
node.setContentSize(width, height);
|
|
2858
|
+
var sprite = node.addComponent(cc.Sprite);
|
|
2859
|
+
sprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
|
|
2860
|
+
sprite.spriteFrame = frame;
|
|
2861
|
+
return node;
|
|
2862
|
+
};
|
|
2863
|
+
TvExitConfirmDialog.prototype.createDialogButton = function (name, normal, selected, x, y, result) {
|
|
2864
|
+
var _this = this;
|
|
2865
|
+
var node = this.createSpriteNode(name, normal, 208, 96);
|
|
2866
|
+
node.setPosition(x, y);
|
|
2867
|
+
var button = node.addComponent(cc.Button);
|
|
2868
|
+
button.transition = cc.Button.Transition.NONE;
|
|
2869
|
+
var state = {
|
|
2870
|
+
node: node,
|
|
2871
|
+
sprite: node.getComponent(cc.Sprite),
|
|
2872
|
+
normal: normal,
|
|
2873
|
+
selected: selected,
|
|
2874
|
+
hovered: false,
|
|
2875
|
+
pressed: false,
|
|
2876
|
+
focused: false
|
|
2877
|
+
};
|
|
2878
|
+
node.on(cc.Node.EventType.MOUSE_ENTER, function () {
|
|
2879
|
+
state.hovered = true;
|
|
2880
|
+
_this.refreshButtonState(state);
|
|
2881
|
+
}, this);
|
|
2882
|
+
node.on(cc.Node.EventType.MOUSE_LEAVE, function () {
|
|
2883
|
+
state.hovered = false;
|
|
2884
|
+
_this.refreshButtonState(state);
|
|
2885
|
+
}, this);
|
|
2886
|
+
node.on(cc.Node.EventType.TOUCH_START, function () {
|
|
2887
|
+
state.pressed = true;
|
|
2888
|
+
_this.refreshButtonState(state);
|
|
2889
|
+
}, this);
|
|
2890
|
+
node.on(cc.Node.EventType.TOUCH_CANCEL, function () {
|
|
2891
|
+
state.pressed = false;
|
|
2892
|
+
_this.refreshButtonState(state);
|
|
2893
|
+
}, this);
|
|
2894
|
+
node.on(cc.Node.EventType.TOUCH_END, function () {
|
|
2895
|
+
state.pressed = false;
|
|
2896
|
+
_this.refreshButtonState(state);
|
|
2897
|
+
_this.close(result);
|
|
2898
|
+
}, this);
|
|
2899
|
+
return state;
|
|
2900
|
+
};
|
|
2901
|
+
TvExitConfirmDialog.prototype.refreshButtonState = function (state) {
|
|
2902
|
+
if (!state || !state.sprite)
|
|
2903
|
+
return;
|
|
2904
|
+
var selected = state.focused || state.hovered || state.pressed;
|
|
2905
|
+
state.sprite.spriteFrame = selected ? state.selected : state.normal;
|
|
2906
|
+
};
|
|
2907
|
+
TvExitConfirmDialog.prototype.registerTvControls = function () {
|
|
2908
|
+
var _this = this;
|
|
2909
|
+
if (!this.tvBackHandler) {
|
|
2910
|
+
this.tvBackHandler = function () {
|
|
2911
|
+
_this.close(false);
|
|
2912
|
+
return true;
|
|
2913
|
+
};
|
|
2914
|
+
}
|
|
2915
|
+
TvUi_4.default.back.push(this.tvBackHandler);
|
|
2916
|
+
if (TvUi_4.default.focus.pushScope) {
|
|
2917
|
+
TvUi_4.default.focus.pushScope(this.tvFocusScopeId, this.node);
|
|
2918
|
+
}
|
|
2919
|
+
this.registerFocus(this.confirmState, true);
|
|
2920
|
+
this.registerFocus(this.cancelState, false);
|
|
2921
|
+
if (this.cancelState && this.cancelState.node) {
|
|
2922
|
+
TvUi_4.default.focus.focusNode(this.cancelState.node);
|
|
2923
|
+
}
|
|
2924
|
+
this.refreshAllButtonStates();
|
|
2925
|
+
};
|
|
2926
|
+
TvExitConfirmDialog.prototype.registerFocus = function (state, result) {
|
|
2927
|
+
var _this = this;
|
|
2928
|
+
if (!state || !state.node)
|
|
2929
|
+
return;
|
|
2930
|
+
TvUi_4.default.focus.register(state.node, {
|
|
2931
|
+
root: this.node,
|
|
2932
|
+
focusScale: 1,
|
|
2933
|
+
onClick: function () {
|
|
2934
|
+
_this.close(result);
|
|
2935
|
+
},
|
|
2936
|
+
onFocus: function () {
|
|
2937
|
+
_this.setFocusedState(state);
|
|
2938
|
+
},
|
|
2939
|
+
onBlur: function () {
|
|
2940
|
+
state.focused = false;
|
|
2941
|
+
_this.refreshAllButtonStates();
|
|
2942
|
+
}
|
|
2943
|
+
});
|
|
2944
|
+
};
|
|
2945
|
+
TvExitConfirmDialog.prototype.setFocusedState = function (focusedState) {
|
|
2946
|
+
if (this.confirmState)
|
|
2947
|
+
this.confirmState.focused = this.confirmState == focusedState;
|
|
2948
|
+
if (this.cancelState)
|
|
2949
|
+
this.cancelState.focused = this.cancelState == focusedState;
|
|
2950
|
+
this.refreshAllButtonStates();
|
|
2951
|
+
};
|
|
2952
|
+
TvExitConfirmDialog.prototype.refreshAllButtonStates = function () {
|
|
2953
|
+
this.refreshButtonState(this.confirmState);
|
|
2954
|
+
this.refreshButtonState(this.cancelState);
|
|
2955
|
+
};
|
|
2956
|
+
TvExitConfirmDialog.prototype.unregisterTvControls = function () {
|
|
2957
|
+
TvUi_4.default.focus.unregisterByRoot(this.node);
|
|
2958
|
+
if (TvUi_4.default.focus.popScope) {
|
|
2959
|
+
TvUi_4.default.focus.popScope(this.tvFocusScopeId);
|
|
2960
|
+
}
|
|
2961
|
+
if (this.tvBackHandler) {
|
|
2962
|
+
TvUi_4.default.back.remove(this.tvBackHandler);
|
|
2963
|
+
this.tvBackHandler = null;
|
|
2964
|
+
}
|
|
2965
|
+
};
|
|
2966
|
+
TvExitConfirmDialog.prototype.close = function (confirmed) {
|
|
2967
|
+
if (this.closed)
|
|
2968
|
+
return;
|
|
2969
|
+
this.finish(confirmed);
|
|
2970
|
+
if (this.node && this.node.isValid) {
|
|
2971
|
+
this.node.destroy();
|
|
2972
|
+
}
|
|
2973
|
+
};
|
|
2974
|
+
TvExitConfirmDialog.prototype.finish = function (confirmed) {
|
|
2975
|
+
if (this.closed)
|
|
2976
|
+
return;
|
|
2977
|
+
this.closed = true;
|
|
2978
|
+
this.unregisterTvControls();
|
|
2979
|
+
TvExitConfirmDialog_1.clearPending(this);
|
|
2980
|
+
if (this.onExitCallback && confirmed) {
|
|
2981
|
+
this.onExitCallback(confirmed);
|
|
2982
|
+
return;
|
|
2983
|
+
}
|
|
2984
|
+
var resolveDialog = this.resolver;
|
|
2985
|
+
this.resolver = null;
|
|
2986
|
+
if (confirmed) {
|
|
2987
|
+
if (TvUi_4.default.api.hasBridge()) {
|
|
2988
|
+
TvUi_4.default.api.onExitGame();
|
|
2989
|
+
return;
|
|
2990
|
+
}
|
|
2991
|
+
if (!TvUi_4.default.api.hasBridge() && cc.game && cc.game.end) {
|
|
2992
|
+
cc.game.end();
|
|
2993
|
+
}
|
|
2994
|
+
}
|
|
2995
|
+
};
|
|
2996
|
+
TvExitConfirmDialog.prototype.onDestroy = function () {
|
|
2997
|
+
if (!this.closed) {
|
|
2998
|
+
this.finish(false);
|
|
2999
|
+
return;
|
|
3000
|
+
}
|
|
3001
|
+
this.unregisterTvControls();
|
|
3002
|
+
};
|
|
3003
|
+
var TvExitConfirmDialog_1;
|
|
3004
|
+
TvExitConfirmDialog = TvExitConfirmDialog_1 = __decorate([
|
|
3005
|
+
ccclass
|
|
3006
|
+
], TvExitConfirmDialog);
|
|
3007
|
+
return TvExitConfirmDialog;
|
|
3008
|
+
}(cc.Component));
|
|
3009
|
+
exports.default = TvExitConfirmDialog;
|
|
3010
|
+
});
|