GuideData.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /**
  2. * @description 新手引导
  3. * @author 邹勇
  4. */
  5. export class GuideData {
  6. /** 新手引导数据 */
  7. public data: Map<number, Guide[]>;
  8. public init(config) {
  9. this.data = new Map<number, Guide[]>();
  10. let arr = [];
  11. let id = 1;
  12. for (let i = 0; i < config.length; i++) {
  13. let guide = {} as Guide;
  14. let o = config[i];
  15. let a = o.id.split("_");
  16. guide.id = parseInt(a[0]);
  17. guide.step = parseInt(a[1]);
  18. guide.trigger = o.trigger;
  19. guide.tr_num = o.tr_num;
  20. guide.tr_form = o.tr_form;
  21. guide.dialog = o.dialog;
  22. guide.click_rect = o.click_rect;
  23. guide.click_node = o.click_node;
  24. guide.finger = o.finger;
  25. guide.lag_next = o.lag_next;
  26. if (id != guide.id) {
  27. this.data.set(id, arr);
  28. arr = [];
  29. id = guide.id;
  30. }
  31. arr.push(guide);
  32. }
  33. this.data.set(id, arr);
  34. }
  35. public getGuidesByID(id): Guide[] {
  36. return this.data.get(id);
  37. }
  38. }
  39. export class Guide {
  40. /** 大步骤 */
  41. id: number;
  42. /** 大步骤中的小步 */
  43. step: number;
  44. /** 触发方式 1固定 2等级 3任务 4关卡 5功能开启 */
  45. trigger: number;
  46. /** 触发条件的数据 如当trigger是关卡时关卡时,为触发关卡 */
  47. tr_num: number;
  48. /** 1头像 2形象 */
  49. tr_form: number;
  50. /** 对话内容 */
  51. dialog: string;
  52. /** 透明点击区域(与click_node不共存) */
  53. click_rect: string;
  54. /** 点击组件名字(必须在代码中预先设置) */
  55. click_node: string;
  56. /** 手指位置 */
  57. finger: string;
  58. /** 下个时间 */
  59. lag_next: 0;
  60. }