67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
const { ccclass } = cc._decorator;
|
|
|
|
type LosePanelAction = (event?: cc.Event, customEventData?: string) => void;
|
|
|
|
interface LosePanelActions {
|
|
[name: string]: LosePanelAction;
|
|
}
|
|
|
|
/** Lose prefab 的按钮桥接层;失败流程仍由 Map 和 SceneManager 管理。 */
|
|
@ccclass
|
|
export default class LosePanel extends cc.Component {
|
|
private actions: LosePanelActions = null;
|
|
|
|
bind(actions: LosePanelActions) {
|
|
this.actions = actions || {};
|
|
}
|
|
|
|
shareFriend(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("shareFriend", event, customEventData);
|
|
}
|
|
|
|
shareFriend2(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("shareFriend2", event, customEventData);
|
|
}
|
|
|
|
shareClose(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("shareClose", event, customEventData);
|
|
}
|
|
|
|
homeBtn(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("homeBtn", event, customEventData);
|
|
}
|
|
|
|
reviewLevel(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("reviewLevel", event, customEventData);
|
|
}
|
|
|
|
closeWinStreak(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("closeWinStreak", event, customEventData);
|
|
}
|
|
|
|
openHealth(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("openHealth", event, customEventData);
|
|
}
|
|
|
|
returnHome(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("returnHome", event, customEventData);
|
|
}
|
|
|
|
againLevel(event?: cc.Event, customEventData?: string) {
|
|
this.invoke("againLevel", event, customEventData);
|
|
}
|
|
|
|
private invoke(name: string, event?: cc.Event, customEventData?: string) {
|
|
const action = this.actions && this.actions[name];
|
|
if (action) {
|
|
action(event, customEventData);
|
|
return;
|
|
}
|
|
cc.warn("LosePanel action is not bound:", name);
|
|
}
|
|
|
|
onDestroy() {
|
|
this.actions = null;
|
|
}
|
|
}
|