FairyGUI.EventDispatcher.BubbleEvent C# (CSharp) Method

BubbleEvent() private method

private BubbleEvent ( string strType, object data, List addChain ) : bool
strType string
data object
addChain List
return bool
        internal bool BubbleEvent(string strType, object data, List<EventBridge> addChain)
        {
            EventContext context = EventContext.Get();
            context.initiator = this;

            context.type = strType;
            context.data = data;
            if (data is InputEvent)
                sCurrentInputEvent = (InputEvent)data;
            context.inputEvent = sCurrentInputEvent;
            List<EventBridge> bubbleChain = context.callChain;
            bubbleChain.Clear();

            GetChainBridges(strType, bubbleChain, true);

            int length = bubbleChain.Count;
            for (int i = length - 1; i >= 0; i--)
            {
                bubbleChain[i].CallCaptureInternal(context);
                if (context._touchEndCapture)
                {
                    context._touchEndCapture = false;
                    if (strType == "onTouchBegin")
                        Stage.inst.AddTouchEndMonitor(context.inputEvent.touchId, bubbleChain[i].owner);
                }
            }

            for (int i = 0; i < length; ++i)
            {
                bubbleChain[i].CallInternal(context);
                if (context._stopsPropagation)
                    break;

                if (context._touchEndCapture)
                {
                    context._touchEndCapture = false;
                    if (strType == "onTouchBegin")
                        Stage.inst.AddTouchEndMonitor(context.inputEvent.touchId, bubbleChain[i].owner);
                }
            }

            if (addChain != null)
            {
                length = addChain.Count;
                for (int i = 0; i < length; ++i)
                {
                    EventBridge bridge = addChain[i];
                    if (bubbleChain.IndexOf(bridge) == -1)
                    {
                        bridge.CallCaptureInternal(context);
                        bridge.CallInternal(context);
                    }
                }
            }

            EventContext.Return(context);
            context.initiator = null;
            context.sender = null;
            context.data = null;
            return context._defaultPrevented;
        }

Same methods

EventDispatcher::BubbleEvent ( string strType, object data ) : bool

Usage Example

Example #1
0
 static int BubbleEvent(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 3);
         FairyGUI.EventDispatcher obj = (FairyGUI.EventDispatcher)ToLua.CheckObject <FairyGUI.EventDispatcher>(L, 1);
         string arg0 = ToLua.CheckString(L, 2);
         object arg1 = ToLua.ToVarObject(L, 3);
         bool   o    = obj.BubbleEvent(arg0, arg1);
         LuaDLL.lua_pushboolean(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
All Usage Examples Of FairyGUI.EventDispatcher::BubbleEvent