@cc-component/cc-ex-component 1.9.1 → 1.9.4

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.
@@ -34,7 +34,7 @@ interface IBindingDataEvents {
34
34
  reset?: (this: any, value: any, com: Component) => void;
35
35
  event?: (this: any) => void;
36
36
  /**动态加载spine的 sp.SkeletonData完成 */
37
- spineFinish?: (this: any) => void;
37
+ spineFinish?: (this: any, value: { path: string, bundle: string, param?: { name: string, loop?: boolean, call?: (name?: string) => void, event?: (name?: string) => void }[] }) => void;
38
38
  touchStart?: (this: any, event: EventTouch) => void;
39
39
  touchMove?: (this: any, event: EventTouch) => void;
40
40
  touchEnd?: (this: any, event: EventTouch) => void;
@@ -65,7 +65,7 @@ interface ICollectViewEvents {
65
65
  // 全局存储绑定关系: { className -> { uiProp: dataPath } }
66
66
  const bindingMap = new Map<any, Map<string, IBindingData>>();
67
67
  const baseData = 'viewModel'
68
- const skip = "_"
68
+ const skip = "func"
69
69
  export const refMap: Map<any, string[]> = new Map();
70
70
 
71
71
  // const comType = {
@@ -317,8 +317,13 @@ export function ViewModel<T extends new (...args: any[]) => Component>(Base: T)
317
317
  // this.offTouch()
318
318
  }
319
319
 
320
- refreshData(key: string, value: any) {
321
-
320
+ private refreshData(key: string, value: any) {
321
+ const funcName = `${key}`
322
+ if (this[funcName]) {
323
+ this[funcName]?.(value)
324
+ } else {
325
+ console.error('没有找到方法:', funcName, this.node.name)
326
+ }
322
327
  }
323
328
 
324
329
  resetButtonScale(btn: Button) {
@@ -590,13 +595,17 @@ function updateStatus(data: IBindingData, com: Component, value: any, self: any)
590
595
  else {
591
596
  const dataSpine = ExComponentModule.EmitGetSpine?.(value)
592
597
  if (dataSpine) {
593
- (com as sp.Skeleton).skeletonData = value;
594
- data.spineFinish.call(self)
598
+ (com as sp.Skeleton).skeletonData = dataSpine;
599
+ if (data.spineFinish) {
600
+ data.spineFinish.call(self, value)
601
+ } else ExComponentModule.EmitSpinePlay({ spine: (com as sp.Skeleton), value: value })
595
602
  }
596
603
  else {
597
604
  ExComponentModule.EmitLoadSpine?.(value).then(sprite => {
598
605
  if (sprite) { if (com && com.isValid) (com as sp.Skeleton).skeletonData = sprite; }
599
- data.spineFinish.call(self)
606
+ if (data.spineFinish) {
607
+ data.spineFinish.call(self, value)
608
+ } else ExComponentModule.EmitSpinePlay({ spine: (com as sp.Skeleton), value: value })
600
609
  }).catch(() => { });
601
610
  }
602
611
  }
@@ -1,6 +1,7 @@
1
1
  import { sp } from "cc";
2
2
  import { SpriteFrame } from "cc";
3
3
  import { Button } from "cc";
4
+ import { ISpinePlayData } from "./Interface";
4
5
 
5
6
 
6
7
  export class ExComponentModule {
@@ -16,6 +17,9 @@ export class ExComponentModule {
16
17
  paramAnim: { enable: boolean }
17
18
  paramSprite: { loadSprite: (param: { bundle: string, path: string }) => Promise<SpriteFrame>, getSprite: (param: { bundle: string, path: string }) => SpriteFrame }
18
19
  paramSpine: { loadSpine: (param: { bundle: string, path: string }) => Promise<sp.SkeletonData>, getSpine: (param: { bundle: string, path: string }) => sp.SkeletonData }
20
+ paramSpinePlay: { play: (param: { spine: sp.Skeleton, value: { path: string, bundle: string, param?: ISpinePlayData[] } }) => void }
21
+
22
+
19
23
  paramUIWindow: { onLoad: (config: any, viewModel: any) => void }
20
24
  paramClose: { close: (openParam: any, closeParam: any) => void }
21
25
 
@@ -52,7 +56,9 @@ export class ExComponentModule {
52
56
  static OnLoadSpine(param: { loadSpine: (param: { bundle: string, path: string }) => Promise<sp.SkeletonData>, getSpine: (param: { bundle: string, path: string }) => sp.SkeletonData }) {
53
57
  ExComponentModule.Ins.paramSpine = param
54
58
  }
55
-
59
+ static OnPlaySpine(param: { play: (param: { spine: sp.Skeleton, value: { path: string, bundle: string, param?: ISpinePlayData[] } }) => void }) {
60
+ ExComponentModule.Ins.paramSpinePlay = param
61
+ }
56
62
 
57
63
  static Emit(btn: Button) {
58
64
  ExComponentModule.Ins.param.click(btn)
@@ -74,6 +80,9 @@ export class ExComponentModule {
74
80
  static EmitGetSpine(param: any): sp.SkeletonData {
75
81
  return ExComponentModule.Ins.paramSpine?.getSpine?.(param)
76
82
  }
83
+ static EmitSpinePlay(param: any): void {
84
+ ExComponentModule.Ins.paramSpinePlay?.play?.(param)
85
+ }
77
86
 
78
87
  static EmitUIWindow(param: any, viewModel: any) {
79
88
  return ExComponentModule.Ins.paramUIWindow?.onLoad?.(param, viewModel)
@@ -2,6 +2,7 @@ import { SpriteFrame } from "cc";
2
2
  import { sp } from "cc";
3
3
  import { Sprite } from "cc";
4
4
  import { Button } from "cc";
5
+ import * as exp from "constants";
5
6
  interface IConfig {
6
7
  module: string,
7
8
  layer: string,
@@ -13,6 +14,8 @@ interface IConfig {
13
14
  /**是否记录-不记录可重复打开窗口 */
14
15
  is_record?: boolean,
15
16
  }
17
+ /**骨骼动画播放参数 */
18
+ export interface ISpinePlayData { name: string, loop?: boolean, call?: (name?: string) => void, event?: (name?: string) => void }
16
19
  declare global {
17
20
  namespace ExComponentModule {
18
21
  /**开启打印日志 */
@@ -28,6 +31,7 @@ declare global {
28
31
  /**监听加载图片 */
29
32
  function OnLoadSprite(param: { loadSprite: (param: { bundle: string, path: string }) => Promise<SpriteFrame>, getSprite: (param: { bundle: string, path: string }) => SpriteFrame });
30
33
  function OnLoadSpine(param: { loadSpine: (param: { bundle: string, path: string }) => Promise<sp.SkeletonData>, getSpine: (param: { bundle: string, path: string }) => sp.SkeletonData });
34
+ function OnPlaySpine(param: { play: (param: { spine: sp.Skeleton, value: { path: string, bundle: string, param?: ISpinePlayData[] } }) => void }): void;
31
35
  /**重置基础窗口 */
32
36
  function ResetBaseWindow(name?: string, isGet?: boolean);
33
37
  /**监听UI onLoad 给模块manager 赋值 */
@@ -42,5 +46,6 @@ declare global {
42
46
  function EmitGetSpine(param: any): sp.SkeletonData;
43
47
  function EmitUIWindow(param: IConfig, viewModel: any);
44
48
  function EmitCloseWindow(openParam: any, closeParam: any);
49
+ function EmitSpinePlay(param: { spine: sp.Skeleton, value: { path: string, bundle: string, param?: ISpinePlayData[] } });
45
50
  }
46
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cc-component/cc-ex-component",
3
- "version": "1.9.1",
3
+ "version": "1.9.4",
4
4
  "engine": ">=3.8.6",
5
5
  "description": "系统组件添加常用扩展方法",
6
6
  "main": "index.ts",