GuideData.ts 1.9 KB

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