update
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user