예제 #1
0
 public void RemoveEventHandler(EventHandlerBase _handler)
 {
     if (ContainsHandler(_handler))
     {
         EventHandlerList.Remove(_handler);
     }
 }
예제 #2
0
 public void AddEventHandler(EventHandlerBase _handler)
 {
     if (_handler != null && !ContainsHandler(_handler))
     {
         EventHandlerList.Add(_handler);
     }
 }
예제 #3
0
        /// <summary>
        /// 获取处理器类型实例
        /// </summary>
        /// <param name="_eHandlerType"></param>
        /// <returns></returns>
        public EventHandlerBase CreateEventEntryHandler(EEventHandlerType _eHandlerType)
        {
            EventHandlerBase newHandler = null;

            newHandler = new EventHandlerBase(_eHandlerType);

            return(newHandler);
        }
예제 #4
0
            public bool ContainsHandler(EventHandlerBase _handler)
            {
                if (_handler == null || EventHandlerList.Count == 0)
                {
                    return(false);
                }

                return(EventHandlerList.Contains(_handler));
            }
예제 #5
0
        /// <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);
        }
예제 #6
0
        /// <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);
        }
예제 #7
0
        /// <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);
        }