EventListener

UGUI的EventSystem事件

  1 using UnityEngine;
  2 using UnityEngine.EventSystems;
  3
  4 public class EventListener : EventTrigger
  5 {
  6     public delegate void OnEvent<T>(GameObject go, T eventData);
  7     public OnEvent<PointerEventData> onClick;
  8     public OnEvent<PointerEventData> onUp;
  9     public OnEvent<PointerEventData> onDown;
 10     public OnEvent<PointerEventData> onEnter;
 11     public OnEvent<PointerEventData> onExit;
 12     public OnEvent<PointerEventData> onInitializePotentialDrag;
 13     public OnEvent<PointerEventData> onBeginDrag;
 14     public OnEvent<PointerEventData> onDrop;
 15     public OnEvent<PointerEventData> onDrag;
 16     public OnEvent<PointerEventData> onEndDrag;
 17     public OnEvent<PointerEventData> onScroll;
 18     public OnEvent<BaseEventData> onSelect;
 19     public OnEvent<BaseEventData> onUpdateSelected;
 20     public OnEvent<BaseEventData> onSubmit;
 21     public OnEvent<BaseEventData> onCancel;
 22     public OnEvent<AxisEventData> onMove;
 23     public OnEvent<BaseEventData> onDeselect;
 24
 25     static public EventListener Get(GameObject go)
 26     {
 27         EventListener listener = go.GetComponent<EventListener>();
 28         if (listener == null) listener = go.AddComponent<EventListener>();
 29         return listener;
 30     }
 31
 32     //点击事件
 33     public override void OnPointerClick(PointerEventData eventData)
 34     {
 35         if (onClick != null) onClick(gameObject, eventData);
 36     }
 37
 38     //鼠标抬起事件
 39     public override void OnPointerUp(PointerEventData eventData)
 40     {
 41         if (onUp != null) onUp(gameObject, eventData);
 42     }
 43
 44     //鼠标按下事件
 45     public override void OnPointerDown(PointerEventData eventData)
 46     {
 47         if (onDown != null) onDown(gameObject, eventData);
 48     }
 49
 50     //鼠标进入事件
 51     public override void OnPointerEnter(PointerEventData eventData)
 52     {
 53         if (onEnter != null) onEnter(gameObject, eventData);
 54     }
 55
 56     //输入离开事件
 57     public override void OnPointerExit(PointerEventData eventData)
 58     {
 59         if (onExit != null) onExit(gameObject, eventData);
 60     }
 61
 62     //可能发生拖拽
 63     public override void OnInitializePotentialDrag(PointerEventData eventData)
 64     {
 65         if (onInitializePotentialDrag != null) onInitializePotentialDrag(gameObject, eventData);
 66     }
 67
 68     //开始拖拽事件
 69     public override void OnBeginDrag(PointerEventData eventData)
 70     {
 71         if (onBeginDrag != null) onBeginDrag(gameObject, eventData);
 72     }
 73
 74     //正在拖拽事件
 75     public override void OnDrag(PointerEventData eventData)
 76     {
 77         if (onDrag != null) onDrag(gameObject, eventData);
 78     }
 79
 80     //拖拽结束【在拖拽结束的对象上发生】
 81     public override void OnDrop(PointerEventData eventData)
 82     {
 83         if (onDrop != null) onDrop(gameObject, eventData);
 84     }
 85
 86     //结束拖拽事件
 87     public override void OnEndDrag(PointerEventData eventData)
 88     {
 89         if (onEndDrag != null) onEndDrag(gameObject, eventData);
 90     }
 91
 92     //滚轮事件
 93     public override void OnScroll(PointerEventData eventData)
 94     {
 95         if (onScroll != null) onScroll(gameObject, eventData);
 96     }
 97
 98     //选中事件
 99     public override void OnSelect(BaseEventData eventData)
100     {
101         if (onSelect != null) onSelect(gameObject, eventData);
102     }
103
104     //选中事件每帧事件
105     public override void OnUpdateSelected(BaseEventData eventData)
106     {
107         if (onUpdateSelected != null) onUpdateSelected(gameObject, eventData);
108     }
109
110     //点击Submit键(默认是Enter键)
111     public override void OnSubmit(BaseEventData eventData)
112     {
113         if (onSubmit != null) onSubmit(gameObject, eventData);
114     }
115
116     //点击Cancel键(默认是Esc键)
117     public override void OnCancel(BaseEventData eventData)
118     {
119         if (onCancel != null) onCancel(gameObject, eventData);
120     }
121
122     //点击方向键
123     public override void OnMove(AxisEventData eventData)
124     {
125         if (onMove != null) onMove(gameObject, eventData);
126     }
127
128     //不再选中对象
129     public override void OnDeselect(BaseEventData eventData)
130     {
131         if (onDeselect != null) onDeselect(gameObject, eventData);
132     }
133 }
时间: 2024-07-29 08:59:30

EventListener的相关文章

JavaScript HTML DOM EventListener

JavaScript HTML DOM EventListener addEventListener() 方法 实例 点用户点击按钮时触发监听事件: document.getElementById("myBtn").addEventListener("click", displayDate); 尝试一下 » addEventListener() 方法用于向指定元素添加事件句柄. addEventListener() 方法添加的事件句柄不会覆盖已存在的事件句柄. 你可

cocos2d-x 源代码分析 : EventDispatcher、EventListener、Event 源代码分析 (新触摸机制,新的NotificationCenter机制)

源代码版本号来自3.x,转载请注明 cocos2d-x 源代码分析总文件夹 http://blog.csdn.net/u011225840/article/details/31743129 1.继承结构 1.1 结构 不详吐槽太多,也不贴图了.贴图要审核好久好久好久好久. 从小到大,先来看下Event的结构. 1.Event--------EventTouch,EventCustom,EventMouse,EventKeyboard,EventFocus,EventAcceleration 当中

设计模式_EventObject和EventListener

一.事件机制基本概念 java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event listener:对每个明确的事件的发生,都相应地定义一个明确的Java方法.这些方法都集中定义在事件监听者(EventListener)接口中,   这个接口要继承 java.util.EventListener. 实现了事件监听者接口中一些或全部方法的类就是事件监听者. 3.even

EventListener中的handleEvent

在研究代码时发现类似这样一段代码: 1 function TEST() {} 2 3 TEST.prototype = { 4 init:function() { 5 window.addEventListener('mousedown',this); 6 }, 7 handleEvent:function(e) { 8 alert('mousedown'); 9 } 10 }; 11 12 new TEST().init(); 最初对于第5行不是很理解,为什么可以传一个this作为参数,并且最

Flash:移除匿名函数监听器EventListener

private function handleCreationComplete():void { sampleButton.addEventListener(MouseEvent.CLICK, createClickListener(1)); sampleButton.addEventListener(MouseEvent.CLICK, createClickListener(2)); } private function createClickListener(clickLimit:int):

cocos2d-x 源码分析 : EventDispatcher、EventListener、Event 源码分析 (新触摸机制,新的NotificationCenter机制)

源码版本来自3.x,转载请注明 cocos2d-x 源码分析总目录 http://blog.csdn.net/u011225840/article/details/31743129 1.继承结构 1.1 结构 不详吐槽太多,也不贴图了,贴图要审核好久好久好久好久. 从小到大,先来看下Event的结构. 1.Event--------EventTouch,EventCustom,EventMouse,EventKeyboard,EventFocus,EventAcceleration 其中,Eve

springboot~ EventListener事件监听的使用

EventListener事件触发和监听器可以对代码解耦,在一些与业务无关的,通用的操作方法,我们可以把它设计成事件监听器,像通知,消息这些模块都可以这样设计. 事件源 @Getter @Builder(toBuilder = true) public class OrderEvent { private String msg; } 事件处理程序 @Component public class OrderEventListener { @EventListener public void han

SSH基于Hibernate eventListener 事件侦听器的操作日志自动保存到数据库

在spring xml配置文件中添加配置,包含:model.listener 在model中增加需要写入数据库对应表的model 在auditLog.xml配置文件中配置自己项目中,需要进行日志记录的model类shortName,以及相关属性. 相关代码如下: 首先spring xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframew

DOM EventListener | 事件冒泡和事件捕获

事件传递有两种方式:冒泡与捕获. 在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件. 在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件. addEventListener() 方法可以指定 "useCapture" 参数来设置传递类型: addEventLis