@cc-component/cc-ex-component 1.9.1 → 1.9.3
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/assets/core/ViewModel.ts
CHANGED
|
@@ -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;
|
|
@@ -590,13 +590,17 @@ function updateStatus(data: IBindingData, com: Component, value: any, self: any)
|
|
|
590
590
|
else {
|
|
591
591
|
const dataSpine = ExComponentModule.EmitGetSpine?.(value)
|
|
592
592
|
if (dataSpine) {
|
|
593
|
-
(com as sp.Skeleton).skeletonData =
|
|
594
|
-
data.spineFinish
|
|
593
|
+
(com as sp.Skeleton).skeletonData = dataSpine;
|
|
594
|
+
if (data.spineFinish) {
|
|
595
|
+
data.spineFinish.call(self, value)
|
|
596
|
+
} else ExComponentModule.EmitSpinePlay({ spine: (com as sp.Skeleton), value: value })
|
|
595
597
|
}
|
|
596
598
|
else {
|
|
597
599
|
ExComponentModule.EmitLoadSpine?.(value).then(sprite => {
|
|
598
600
|
if (sprite) { if (com && com.isValid) (com as sp.Skeleton).skeletonData = sprite; }
|
|
599
|
-
data.spineFinish
|
|
601
|
+
if (data.spineFinish) {
|
|
602
|
+
data.spineFinish.call(self, value)
|
|
603
|
+
} else ExComponentModule.EmitSpinePlay({ spine: (com as sp.Skeleton), value: value })
|
|
600
604
|
}).catch(() => { });
|
|
601
605
|
}
|
|
602
606
|
}
|
|
@@ -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
|
}
|