//-------∽-★-∽------∽-★-∽--------∽-★-∽数据管理∽-★-∽--------∽-★-∽------∽-★-∽--------// /// <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 }
//为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_); } }
public static void InvokeEvent(KComponentEvent evt) { if (evt != null) { evt.Invoke(); } }
/// <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 }
protected virtual void OnItemClick(KListItem target, PointerEventData evtData) { int oldSelectedIndex = SelectedIndex; KComponentEvent <int, int> .InvokeEvent(m_onItemClick, m_evtId_click, target.Index); KEvtCenter4Lua.AddUIListEvent(m_evtId_click, target.Index); if (target == m_selectedItem) { //已经是当前项 return; } bool isSelectedIndexChanged = (SelectedIndex != oldSelectedIndex); if (isSelectedIndexChanged == true) { //若在_onItemClick事件中修改了KList的SelectedIndex,则不再调用后续事件处理 return; } if (m_selectedItem != null) { m_selectedItem.IsSelected = false; m_selectedItem = null; } m_selectedItem = target; m_selectedItem.IsSelected = true; KComponentEvent <int, int> .InvokeEvent(m_onSelectedIndexChanged, m_evtId_change, SelectedIndex); KEvtCenter4Lua.AddUIListEvent(m_evtId_change, SelectedIndex); }
//static public static KComponentEvent GetEvent(ref KComponentEvent evt) { if (evt == null) { evt = new KComponentEvent(); } return(evt); }
void onInternalValueChanged(float value) { RefreshFillImage(value); KComponentEvent <KSlider, float> .InvokeEvent(m_onValueChanged, this, value); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.VALUE_CHANGE, value); }
/// <summary> /// 点击事件(内部冒泡事件) /// 这个要改 /// </summary> /// <param name="evtData"></param> public virtual void OnPointerClick(PointerEventData evtData) { if (evtData.dragging == true) { return; } this.IsSelected = true; KComponentEvent <KListItem, PointerEventData> .InvokeEvent(m_onClick, this, evtData); }
static public int constructor(IntPtr l) { try { mg.org.KUI.KComponentEvent <UnityEngine.GameObject> o; o = new mg.org.KUI.KComponentEvent <UnityEngine.GameObject>(); pushValue(l, true); pushValue(l, o); return(2); } catch (Exception e) { return(error(l, e)); } }
/// <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); } }
static public int RemoveListener(IntPtr l) { try { mg.org.KUI.KComponentEvent <UnityEngine.GameObject> self = (mg.org.KUI.KComponentEvent <UnityEngine.GameObject>)checkSelf(l); UnityEngine.Events.UnityAction <UnityEngine.GameObject> a1; checkDelegate(l, 2, out a1); self.RemoveListener(a1); pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
//清除item的data void ClearItemData(GameObject item, int index_) { if (!m_item2data.ContainsKey(item)) { return; } m_item2data.Remove(item); KComponentEvent <GameObject, int> .InvokeEvent(m_onDataRemoved, item, index_); KListViewItem view = CreateItemView(item, index_); if (view != null) { view.Index = -1; view.Destroy(); } }
//-------∽-★-∽------∽-★-∽--------∽-★-∽数据管理∽-★-∽--------∽-★-∽------∽-★-∽--------// /// <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); } }