This commit is contained in:
2024-05-01 19:13:01 +08:00
parent cf008327aa
commit 80a32d9b1b
150 changed files with 8561 additions and 5045 deletions

View File

@@ -1,4 +1,5 @@
import { Button, Color, Component, Node, Slider } from 'cc'
import ColorHelper from './ColorHelper'
export class HaoEvent {
@@ -18,20 +19,17 @@ export default class EventManager {
private callbackList = {}
public constructor() {
}
public constructor() {}
//注册事件
// 注册事件
public addListener(eventName: string, callback: Function, caller: any) {
if (this.callbackList[eventName]) {
let eventList: Array<HaoEvent> = this.callbackList[eventName]
//不同元件才放入,相同元件覆蓋
const eventList: Array<HaoEvent> = this.callbackList[eventName]
// 不同元件才放入,相同元件覆蓋
let add: boolean = true
for (let i = 0; i < eventList.length; i++) {
let event: HaoEvent = eventList[i]
if (caller === event.caller) {
add = false
}
const event: HaoEvent = eventList[i]
if (caller === event.caller) add = false
}
if (add) {
eventList.push(new HaoEvent(callback, caller))
@@ -46,7 +44,7 @@ export default class EventManager {
public removeListener(eventName: string, callback: Function) {
if (this.callbackList[eventName]) {
for (let i = this.callbackList[eventName].length - 1; i >= 0; i--) {
let event: HaoEvent = this.callbackList[eventName][i]
const event: HaoEvent = this.callbackList[eventName][i]
if (event.callback == callback) {
this.callbackList[eventName].splice(i, 1)
break
@@ -56,17 +54,15 @@ export default class EventManager {
}
public dispatchEvent(eventName, parameter?: any, ...restOfName: any[]) {
let eventList: Array<HaoEvent> = this.callbackList[eventName]
const eventList: Array<HaoEvent> = this.callbackList[eventName]
if (eventList) {
for (let i = eventList.length - 1; i >= 0; i--) {
let event: HaoEvent = eventList[i]
const event: HaoEvent = eventList[i]
event.callback.call(event.caller, event, parameter, ...restOfName)
if (event.isStop) {
break
}
if (event.isStop) break
}
for (let i = eventList.length - 1; i >= 0; i--) {
let event: HaoEvent = eventList[i]
const event: HaoEvent = eventList[i]
event.isStop = false
}
}
@@ -77,12 +73,12 @@ export default class EventManager {
objectNode: Node,
scriptName: string,
eventName: string,
data: any = null
data: any = null,
) {
var btn: Button = objectNode.addComponent(Button)
var clickEventHandler = new Component.EventHandler()
clickEventHandler.target = parentNode //这个 node 节点是你的事件处理代码组件所属的节点
clickEventHandler.component = scriptName //这个是代码文件名
const btn: Button = objectNode.addComponent(Button)
const clickEventHandler = new Component.EventHandler()
clickEventHandler.target = parentNode // 这个 node 节点是你的事件处理代码组件所属的节点
clickEventHandler.component = scriptName // 这个是代码文件名
clickEventHandler.handler = eventName
clickEventHandler.customEventData = data
btn.clickEvents.push(clickEventHandler)
@@ -94,12 +90,12 @@ export default class EventManager {
}
public removeBtnEffect(objectNode: Node) {
var b = objectNode.getComponent(Button)
const b = objectNode.getComponent(Button)
b.transition = Button.Transition.NONE
}
public addBtnEffect(objectNode: Node, scale: number = 1.1) {
var b = objectNode.getComponent(Button)
const b = objectNode.getComponent(Button)
b.transition = Button.Transition.SCALE
b.zoomScale = scale
}
@@ -107,24 +103,19 @@ export default class EventManager {
public addBtnEffect_color(
objectNode: Node,
normalC: Color = ColorHelper.getColor('#FFFFFF'),
pressC: Color = ColorHelper.getColor('#C0C0C0')
pressC: Color = ColorHelper.getColor('#C0C0C0'),
) {
var b = objectNode.getComponent(Button)
const b = objectNode.getComponent(Button)
b.transition = Button.Transition.COLOR
b.normalColor = normalC
b.pressedColor = pressC
}
public addSliderEvent(
parentNode: Node,
objectNode: Node,
EventName: string,
data: any
) {
var b = objectNode.getComponent(Slider)
var clickEventHandler = new Component.EventHandler()
clickEventHandler.target = parentNode //这个 node 节点是你的事件处理代码组件所属的节点
clickEventHandler.component = parentNode.name //这个是代码文件名
public addSliderEvent(parentNode: Node, objectNode: Node, EventName: string, data: any) {
const b = objectNode.getComponent(Slider)
const clickEventHandler = new Component.EventHandler()
clickEventHandler.target = parentNode // 这个 node 节点是你的事件处理代码组件所属的节点
clickEventHandler.component = parentNode.name // 这个是代码文件名
clickEventHandler.handler = EventName
clickEventHandler.customEventData = data
b.slideEvents.push(clickEventHandler)