3.3自定义事件求助

自定义事件继承Event,但是Event构造函数的name参数只支持cocos_core_platform_event_manager_event_enum_SystemEventTypeUnion的类型!这样如何定义自定义事件,3.2还支持string类型呀。

关键字:类型“string”的参数不能赋给类型“cocos_core_platform_event_manager_event_enum_SystemEventTypeUnion”的参数。

1赞

我也碰到了同样的问题。
求解。

搜了几篇文章,估计难搞了。
不纠结了,还是直接node.emit(data)吧。

也可以做一个独立的事件转发系统

可以讲一下大致的思路吗:
我现在的需求大概是这样的,parent节点初始化child结点,并存储,child响应点击时再用parent对象调用函数去刷新child,但是这样很容易导致循环引用,尤其实在项目推进了一定进度的时候,所以就想着用自定义事件去做.向上抛事件,而不是直接去引用parent对象调用.

我这里有个 可以参考一下

import {Event} from 'cc';
export class EventCustom extends Event {
public detail: any = null;  // 自定义的属性
constructor(name: string, detail?: any, bubbles?: boolean,) {
    // @ts-ignore 自定义事件 类型 字符串类型
    super(name, bubbles);
    this.detail = detail;
}

public static create(type: string, detail?: any): EventCustom {
    return new EventCustom(type, detail, true);
}

}

谢谢你
但是3.3的Event类的构造函数不允许传string类型,也就是super()中的name不能传字符串
只支持这个枚举(cocos_core_platform_event_manager_event_enum_SystemEventTypeUnion)包涵的类型

我解决了

@ccclass(‘MyEvent’)

export class MyEvent extends Event {

constructor(type:any, bubbles?: boolean, detail?: any) {

    super(type,bubbles)

    this.detail = detail;

}

public detail: any = null;  // 自定义的属性

}

啊这,怕内部做处理,硬式没敢写any,我回去试试

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。