(NGUI)监听事件方法

  1 using UnityEngine;
  2
  3 namespace UI
  4 {
  5     public class UIEventListener : MonoBehaviour
  6     {
  7         public int id;
  8
  9         public delegate void SubmitDelegate();
 10         public event SubmitDelegate onSubmit;
 11         void OnSubmit()
 12         {
 13             if (onSubmit != null)
 14                 onSubmit();
 15         }
 16
 17         public delegate void ClickDelegate();
 18         public event ClickDelegate onClick;
 19         public delegate void ClickDelegateEX(int id);
 20         public event ClickDelegateEX onClickEX;
 21         /// <summary>
 22         /// 鼠标或触摸单击(按下并释放)时触发。
 23         /// </summary>
 24         void OnClick()
 25         {
 26             if (onClick != null)
 27                 onClick();
 28
 29             if (onClickEX != null)
 30                 onClickEX(id);
 31         }
 32
 33         public delegate void DoubleClickDelegate();
 34         public event DoubleClickDelegate onDoubleClick;
 35         /// <summary>
 36         /// 双击(双击时间间隔小于0.25秒)时触发。
 37         /// </summary>
 38         void OnDoubleClick()
 39         {
 40             if (onDoubleClick != null)
 41                 onDoubleClick();
 42         }
 43
 44         public delegate void HoverDelegates(bool isOver);
 45         public event HoverDelegates onHover;
 46         /// <summary>
 47         /// 鼠标悬停或移出时触发。悬停时传入true,移出时传入false。
 48         /// </summary>
 49         /// <param name="isOver"></param>
 50         void OnHover(bool isOver)
 51         {
 52             if (onHover != null)
 53                 onHover(isOver);
 54         }
 55
 56         public delegate void PressDelegate(bool isPressed);
 57         public event PressDelegate onPress;
 58         /// <summary>
 59         /// 鼠标或触摸按下或松开时触发,按下时传入true,松开时传入false。
 60         /// </summary>
 61         /// <param name="isPressed"></param>
 62         void OnPress(bool isPressed)
 63         {
 64             if (onPress != null)
 65                 onPress(isPressed);
 66         }
 67
 68         public delegate void SelectDelegate(bool selected);
 69         public event SelectDelegate onSelect;
 70         /// <summary>
 71         /// 类似单击,区别在于选中一次之后再选中将不再触发OnSelect事件,除非期间选择了其他控件。
 72         /// </summary>
 73         /// <param name="selected"></param>
 74         void OnSelect(bool selected)
 75         {
 76             if (onSelect != null)
 77                 onSelect(selected);
 78         }
 79
 80         public delegate void ScrollDelegate(float delta);
 81         public event ScrollDelegate onScroll;
 82         /// <summary>
 83         /// 鼠标中键滚动时触发,delta为传入的滚动增量。
 84         /// </summary>
 85         /// <param name="delta"></param>
 86         void OnScroll(float delta)
 87         {
 88             if (onScroll != null)
 89                 onScroll(delta);
 90         }
 91
 92         public delegate void VectorDelegate(Vector2 delta);
 93         public event VectorDelegate onDrag;
 94         /// <summary>
 95         /// 鼠标或触摸按下并移动时触发。delta为传入的位移。
 96         /// </summary>
 97         /// <param name="delta"></param>
 98         void OnDrag(Vector2 delta)
 99         {
100             if (onDrag!=null)
101             {
102                 onDrag(delta);
103             }
104         }
105
106         public delegate void InputDelegate(string text);
107         public event InputDelegate onInput;
108         /// <summary>
109         /// 只用于输入控件,每次输入完成后触发,text传入本次输入的信息,而非输入控件中的文本信息。
110         /// </summary>
111         /// <param name="text"></param>
112         void OnInput(string text)
113         {
114             if (onInput != null)
115                 onInput(text);
116         }
117
118
119         public delegate void DropDelegate(GameObject go);
120         public event DropDelegate onDrop;
121         /// <summary>
122         /// 鼠标OnDrag后移入不同对象释放时触发.go是开始触发OnDrag的对象.
123         /// </summary>
124         /// <param name="go"></param>
125         void OnDrop(GameObject go)
126         {
127             if (onDrop != null)
128                 onDrop(go);
129         }
130
131         public delegate void KeyCodeDelegate(KeyCode key);
132         public event KeyCodeDelegate onKey;
133         void OnKey(KeyCode key)
134         {
135             if (onKey != null)
136                 onKey(key);
137         }
138
139         public delegate void TooltipDelegate(bool show);
140         public event TooltipDelegate onTooltip;
141         /// <summary>
142         /// 鼠标悬停一段时间或移开时触发,悬停时传入true,移开时传入false。
143         /// </summary>
144         /// <param name="show"></param>
145         void OnTooltip(bool show)
146         {
147             if (onTooltip!=null)
148             {
149                 onTooltip(show);
150             }
151         }
152
153         static public UIEventListener Get(GameObject go)
154         {
155             UIEventListener listener = go.GetComponent<UIEventListener>();
156             if (listener == null) listener = go.AddComponent<UIEventListener>();
157             return listener;
158         }
159     }
160 }
时间: 2024-10-06 09:41:07

(NGUI)监听事件方法的相关文章

NGUI监听事件

using UnityEngine; using System.Collections; public class UIDataHandler : MonoBehaviour { public UIInput nameInput; public UIInput psInput; public GameObject loginBtn; public GameObject registerBtn; public UILabel tipLabel; void Start () { //侦听按钮事件 U

Unity NGUI监听按钮点击事件的三种方法

NGUI版本:3.6.5 1.直接实现OnClick方法: 创建一个脚本,在脚本中实现OnClick()方法,绑定该脚本到按钮上,点击时就会实现OnClick函数内容: 2.使用SendMessage: 选择按钮后,打开Component——NGUI——Interaction,选择Button Message,为按钮添加一个UIButton Message组件: 然后设置UIButton Message中的参数即可: Target:接收按钮消息的游戏对象: Function Name:接收按钮消

监听事件 实现的四种方法

1.初始化当前所需要控件,如何初始化一个控件…………private Button xxxxfindViewById---返回的是一个View的对象…………需要强转成其子类Button对象findViewById---是如何查找View的Id…………通过R中的ID2.设置Button的监听器,通过监听器实现我们点击Button需要操作的事情 方式一: 匿名内部类实现事件监听:在按钮的setOnClickListener方法中new一个OnClickListener类,并在OnClickListen

miniui 给表格行添加监听事件的几种方法以及点击某列列名数据不能排序的问题

最近在使用miniui框架做开发,在做表格行的点击监听事件中发现了几个属性,都可以起到监听效果但是执行的结果却大有不同.好了废话不多说,直接上代码. <div id="pageGrid" class="mini-datagrid" style="width: 100%; height: 100%; border:0;" url="${ctx}/tAXINFO/queryRepeat" autoload="tru

【iOS开发-46】利用UIButton和UIImageView的区别分辨哪些控件有addTarget监听事件这个方法

(1)UIButton和UIImageView的相同点 都能显示图片. (2)UIButton和UIImageView的不同点 --前者不仅能显示图片还能监听事件(就是有addtarget方法) --前者不仅能显示图片还能显示两张图片(就是setImage和setBackgroundImage两个方法) --前者不仅能显示图片还能显示文字(就是setTitle方法) (3)使用场合 --如果仅仅是显示一个图片没其他花头,那就用UIImageView --如果有其他,那么-- 因为如果仅仅用于显示

安卓开发学习日记 DAY5——监听事件onClick的实现方法

今天主要学习了监听事件的是实现方法,就是说,做了某些动作后,怎么监听这个动作并作出相应反应. 方法主要有三种: 1.匿名内部类的方法 2.独立类的方法 3.类似实现接口的方法 以下分别分析: 1.匿名内部类的方法 就是使用innerClass的方式创建监听事件 步骤如下: 1)创建一个button,在xml中拖入一个button即可 2)在源程序中对button进行初始化 就是,先创建一个button btn,然后使用findViewById找到你之前的那个button进行关联,此时请注意fin

201507221403_《backbone之一——新建模型和集合、实例化模型、模型上监听事件的方法、模型设置和获取后台数据、配置理由方法、视图绑定事件的方法、绑定模型等》

一 . 新建 var model_1 = new Backbone.Model({'name':'hello'}); var model_2 = new Backbone.Model({'name':'hi'}); var models = new Backbone.Collection(); models.add( model_1 ); models.add( model_2 ); alert( JSON.stringify(models) ); 二. 实例化模型 var M = Backbo

Android成长日记-Android监听事件的方法

1. Button鼠标点击的监听事件 --setOnClickListener 2. CheckBox, ToggleButton , RadioGroup的改变事件 --setOnCheckedChangeListener Eg: 3. onPageChangeListener() ----用来监控ViewPager滑到第几页

JS过渡结束监听事件及使用自定义事件解决兼容问题的方法

1.JS过渡结束监听事件 2.自定义事件解决兼容问题 原文地址:https://www.cnblogs.com/liu-web-bew/p/9345478.html