/// <summary> /// 鼠标进入 /// </summary> /// <param name="eventData"></param> public override void OnPointerEnter(PointerEventData eventData) { base.OnPointerEnter(eventData); KComponentEvent <KButton, PointerEventData> .InvokeEvent(m_onPointerEnter, this, eventData); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.POINTER_ENTER); if (m_isPassPoint) { PassPointEvent(eventData, ExecuteEvents.pointerEnterHandler); } //#if (((UNITY_ANDROID || UNITY_IPHONE || UNITY_WINRT || UNITY_BLACKBERRY) && !UNITY_EDITOR)) if (Input.touchCount >= (eventData.pointerId + 1)) { m_pointId = eventData.pointerId; } else { m_pressure = 0; m_maximumPossiblePressure = 0; } //#endif }
//为item设置data protected void SetItemData(GameObject item, int index_, object data_) { if (m_item2data.ContainsKey(item)) { if (m_item2data[item] == data_) { //数据一样,不重复设置 return; } } m_item2data[item] = data_; KComponentEvent <GameObject, int, object> .InvokeEvent(m_onDataChanged, item, index_, data_); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.LIST_ITEM_DATA, item, index_ + 1); //lua从1开始 KListViewItem view = CreateItemView(item, index_); if (view != null) { view.Index = index_; view.Show(data_); } }
void OnValueChanged(bool isOn_) { bool pointerTriggered = m_pointerTriggered; m_pointerTriggered = false; if (m_ignoreChange) { return; } if (m_needReqChange && pointerTriggered) { //点击触发才进来 bool cur = CurrentIsOn(); SelectIgnoreChange(cur); //置回去, 因为基类的isOn已经变了 onReqChange.Invoke(this, isOn_); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.REQ_VALUE_CHANGE, isOn_); return; } RefreshMask(isOn_); if (!m_ignoreInvoke) { onValueChanged.Invoke(this, isOn_); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.VALUE_CHANGE, isOn_); } }
//-------∽-★-∽------∽-★-∽--------∽-★-∽数据管理∽-★-∽--------∽-★-∽------∽-★-∽--------// /// <summary> /// 点击 /// </summary> /// <param name="eventData"></param> public override void OnPointerClick(PointerEventData eventData) { //base.OnPointerClick(eventData); //屏蔽基类的 if (eventData.button != PointerEventData.InputButton.Left) { return; } KComponentEvent <KButton> .InvokeEvent(m_onClick, this); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.POINTER_CLICK); if (m_isPassPoint) { PassPointEvent(eventData, ExecuteEvents.submitHandler); PassPointEvent(eventData, ExecuteEvents.pointerClickHandler); } //#if (((UNITY_ANDROID || UNITY_IPHONE || UNITY_WINRT || UNITY_BLACKBERRY) && !UNITY_EDITOR)) if (Input.touchCount >= (eventData.pointerId + 1)) { m_pointId = eventData.pointerId; } else { m_pressure = 0; m_maximumPossiblePressure = 0; } //#endif }
void onInternalValueChanged(float value) { RefreshFillImage(value); KComponentEvent <KSlider, float> .InvokeEvent(m_onValueChanged, this, value); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.VALUE_CHANGE, value); }
override protected void __Clear() { SluaHost.errorDelegateLua -= OnLuaError; CCApp.appBhv.OnUpdate -= OnSvrUpdate; CCApp.appBhv.OnLateUpdate -= OnSvrLateUpdate; m_luaHost.StopSvr(); LuaEvtCenter.Clear(); }
void OnToggleValueChanged(KToggle target_, bool isOn_) { int lastIndex = m_lastIndex; if (isOn_) { if (!m_allowMultiple) { //不允许多选,取消上一个 if (m_lastIndex >= 0) { KToggle last = m_toggleList[m_lastIndex]; last.Select(false, true); RemoveFromSelect(m_lastIndex); m_lastIndex = -1; } } m_lastIndex = m_toggleList.IndexOf(target_); m_selectList.Add(m_lastIndex); if (!m_ingoreInvoke) { onValueChange.Invoke(this, m_lastIndex, isOn_); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.VALUE_CHANGE, m_lastIndex + 1, isOn_); //lua从1开始 } } else { //取消 int index = m_toggleList.IndexOf(target_); RemoveFromSelect(index); if (m_lastIndex == index) { m_lastIndex = -1; } if (m_allowMultiple) { if (m_selectList.Count > 0) { //多选,还有选中的 m_lastIndex = m_selectList[m_selectList.Count - 1]; } } if (!m_ingoreInvoke) { onValueChange.Invoke(this, index, isOn_); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.VALUE_CHANGE, index + 1, isOn_); //lua从1开始 } } }
private void onEndEditHandler(string text) { StopEdit(); //if (this.enabled && gameObject.activeSelf) //deactive也会导致edit end //{ // LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.EDIT_END, text); //} LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.EDIT_END, text); }
/// <summary> /// 鼠标离开 /// </summary> /// <param name="eventData"></param> public override void OnPointerExit(PointerEventData eventData) { base.OnPointerExit(eventData); KComponentEvent <KButton, PointerEventData> .InvokeEvent(m_onPointerExit, this, eventData); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.POINTER_EXIT); if (m_isPassPoint) { PassPointEvent(eventData, ExecuteEvents.pointerExitHandler); } }
//-------∽-★-∽------∽-★-∽--------∽-★-∽数据管理∽-★-∽--------∽-★-∽------∽-★-∽--------// /// <param name="position">滚到顶部为1,滚到底部为0</param> void OnInternalValueChanged(Vector2 position) { if (m_scrollArrow != null) { //更新箭头 m_scrollArrow.Refresh(position, this); } if (m_point.x != position.x || m_point.y != position.y) { m_point.x = position.x; m_point.y = position.y; KComponentEvent <KScrollView, Vector2> .InvokeEvent(m_onValueChanged, this, position); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.VALUE_CHANGE, position.x, position.y); } }
/// <summary> /// 鼠标弹起 /// </summary> /// <param name="eventData"></param> public override void OnPointerUp(PointerEventData eventData) { if (eventData.button != PointerEventData.InputButton.Left) { return; } base.OnPointerUp(eventData); KComponentEvent <KButton, PointerEventData> .InvokeEvent(m_onPointerUp, this, eventData); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.POINTER_UP, eventData.pressPosition.x, eventData.pressPosition.y); if (m_isPassPoint) { PassPointEvent(eventData, ExecuteEvents.pointerUpHandler); } }
void OnToggleReqChanged(KToggle target_, bool isOn_) { if (m_needReqChange) { int index = m_toggleList.IndexOf(target_); onReqChange.Invoke(this, index, isOn_); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.REQ_VALUE_CHANGE, index + 1, isOn_); //lua从1开始 return; } if (!m_allowSwitchOff && !m_allowMultiple) { //不允许取消 and 不为多选 if (isOn_ == false) { return; } } target_.Select(isOn_); }
public override void OnPointerUp(PointerEventData eventData) { base.OnPointerUp(eventData); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.POINTER_UP, value); }
static public int GetEvents_s(IntPtr l) { try { evtNum = 0; goEvtNum = 0; //go事件数量 ArrReset(-1); if (LuaEvtCenter.__events.Count > 0) { List <LuaEvtCenter.LuaEvt> events = LuaEvtCenter.__events; LuaEvtCenter.LuaEvt evt; int len = events.Count; for (int i = 0; i < len; ++i) { evt = events[i]; ArrPush(l, evt.type); if (evt.args != null) { ArrPush(l, evt.args.Length); //写入参数长度 for (int j = 0; j < evt.args.Length; ++j) { ArrPush(l, evt.args[j]); } } else { ArrPush(l, 0); //参数长度为0 } evtNum++; } LuaEvtCenter.ClearEvents(); } if (LuaEvtCenter.__goEvents.Count > 0) { List <LuaEvtCenter.LuaGoEvt> goEvents = LuaEvtCenter.__goEvents; LuaEvtCenter.LuaGoEvt evt; int len = goEvents.Count; for (int i = 0; i < len; ++i) { evt = goEvents[i]; if (evt.go) { //go还活着 ArrPush(l, evt.type); ArrPush(l, evt.go); if (evt.args != null) { ArrPush(l, evt.args.Length); //写入参数长度 for (int j = 0; j < evt.args.Length; ++j) { ArrPush(l, evt.args[j]); } } else { ArrPush(l, 0); //参数长度为0 } goEvtNum++; } } LuaEvtCenter.ClearGoEvents(); } pushValue(l, true); pushValue(l, evtNum); //事件数量 pushValue(l, goEvtNum); //事件数量 return(3); } catch (Exception e) { return(error(l, e)); } }
//-------∽-★-∽------∽-★-∽--------∽-★-∽数据管理∽-★-∽--------∽-★-∽------∽-★-∽--------// private void onValueChangedHandler(string text) { LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.VALUE_CHANGE, text); }