public void RemoveEventHandler(EventHandlerBase _handler) { if (ContainsHandler(_handler)) { EventHandlerList.Remove(_handler); } }
public void AddEventHandler(EventHandlerBase _handler) { if (_handler != null && !ContainsHandler(_handler)) { EventHandlerList.Add(_handler); } }
/// <summary> /// 获取处理器类型实例 /// </summary> /// <param name="_eHandlerType"></param> /// <returns></returns> public EventHandlerBase CreateEventEntryHandler(EEventHandlerType _eHandlerType) { EventHandlerBase newHandler = null; newHandler = new EventHandlerBase(_eHandlerType); return(newHandler); }
public bool ContainsHandler(EventHandlerBase _handler) { if (_handler == null || EventHandlerList.Count == 0) { return(false); } return(EventHandlerList.Contains(_handler)); }
/// <summary> /// 添加触发事件处理器 /// </summary> /// <param name="_eEventID">事件ID</param> /// <param name="_eHandlerType">处理器类型</param> /// <param name="_handler">用户自己创建的处理器</param> /// <returns></returns> public void AddEventEntryHandler(EventTriggerType _eEventID, EventHandlerBase _handler) { if (_handler == null) { Trace.LogWarning("GeiWoDe Handler ShiKong,NiFangFuZaiDouWoXiao?"); return; } _AddEventEntryHandler(_eEventID, _handler); }
/// <summary> /// 绑定事件类型和处理器 /// </summary> /// <param name="_eEventID"></param> /// <param name="_handler"></param> private void _AddEventEntryHandler(EventTriggerType _eEventID, EventHandlerBase _handler) { int eventTypeIndex = -1; //添加事件类型 if (!ContainsEventTriggerType(_eEventID, out eventTypeIndex)) { AddEventEntry(_eEventID); eventTypeIndex = Triggers.Count - 1; } //给该类型添加处理器 Triggers[eventTypeIndex].AddEventHandler(_handler); }
/// <summary> /// 移除触发事件处理器 /// </summary> /// <param name="_eEventID">事件ID</param> /// <param name="_eHandlerType">处理器类型</param> /// <param name="_handler">需要移除的处理器</param> public void RemoveEventEntryHandler(EventTriggerType _eEventID, EventHandlerBase _handler) { if (_handler == null) { return; } int eventTypeIndex; if (!ContainsEventTriggerType(_eEventID, out eventTypeIndex)) { return; } if (!Triggers[eventTypeIndex].ContainsHandler(_handler)) { return; } Triggers[eventTypeIndex].RemoveEventHandler(_handler); }