示例#1
0
        /// <summary>
        /// 触发带返回的消息
        /// </summary>
        /// <param name="_args"></param>
        /// <param name="_bubbleChanel"></param>
        public object TriggerSelf(object _args, bool _bubbleChanel)
        {
            if (funcCallbacks.Count > 0)
            {
                for (var index = 0; index < funcCallbacks.Count; index++)
                {
                    var funcCallback = funcCallbacks[index];
                    if (null != funcCallback)
                    {
                        return(funcCallback(_args));
                    }
                }
            }

            if (true == _bubbleChanel)
            {
                for (var index = 0; index < channelTags.Count; index++)
                {
                    var channelTag = channelTags[index];
                    var channel    = AppEvent.GetEventChannel(channelTag);
                    if (null != channel)
                    {
                        ((EventSystemChannel)channel).TriggerSelf(_args);
                    }
                }
            }
            return(null);
        }
示例#2
0
        /// <summary>
        /// 广播消息,是否冒泡给Channel
        /// </summary>
        /// <param name="_args"></param>
        /// <param name="_BubbleChannel"></param>
        public void BroadCastSelf(object _args, bool _BubbleChannel)
        {
            // 广播所有事件
            if (eventCallbacks.Count > 0)
            {
                for (var index = 0; index < eventCallbacks.Count; index++)
                {
                    var eventCallback = eventCallbacks[index];
                    if (null != eventCallback)
                    {
                        eventCallback(_args);
                    }
                }
            }

            if (true == _BubbleChannel)
            {
                // 监听了对应频道的也进行广播
                if (channelTags.Count > 0)
                {
                    for (var index = 0; index < channelTags.Count; index++)
                    {
                        var channelTag = channelTags[index];
                        var channel    = AppEvent.GetEventChannel(channelTag);
                        if (null != channel)
                        {
                            ((EventSystemChannel)channel).BroadCastSelf(EventName, _args);
                        }
                    }
                }
            }
        }