控件(Widget)
<p>[TOC]</p>
<p>继承自 Node组件
所有UI组件继承Widget,可以调用Widget中的方法</p>
<h3>创建节点</h3>
<pre><code>co.Widget:create(parent, id, x, y, width, height)</code></pre>
<pre><code>parent 父节点对象
id 唯一ID
x 位置 横坐标
y 位置 纵坐标
width 宽度
height 高度</code></pre>
<h3>鼠标模拟事件,模拟左键点击事件</h3>
<pre><code>co.Widget:clickWidget(widget)</code></pre>
<h3>注册控件事件</h3>
<pre><code>co.Widget:addWidgetEventListener(widget, desc, msgtype, callback)</code></pre>
<pre><code>widget 控件对象
msg 描述
msgtype 窗体事件id
callback 回调函数
窗口事件 msgtype
WND_EVENT_MOUSE_LB_DOWN = 1 -- 鼠标左键按下事件
WND_EVENT_MOUSE_LB_UP = 2 -- 鼠标左键弹起事件
WND_EVENT_MOUSE_LB_CLICK = 3 -- 鼠标左键点击事件
WND_EVENT_MOUSE_LB_DBCLICK = 4 -- 鼠标左键双击事件
WND_EVENT_MOUSE_RB_DOWN = 5 -- 鼠标右键按下事件
WND_EVENT_MOUSE_RB_UP = 6 -- 鼠标右键弹起事件
WND_EVENT_MOUSE_RB_CLICK = 7 -- 鼠标右键点击事件
WND_EVENT_MOUSE_RB_DBCLICK = 8 -- 鼠标右键双击事件
WND_EVENT_MOUSE_MOVE = 9 -- 鼠标移动事件
WND_EVENT_MOUSE_WHEEL = 10 -- 鼠标滚轮滚动事件
WND_EVENT_MOUSE_IN = 11 -- 鼠标进入控件事件
WND_EVENT_MOUSE_OUT = 12 -- 鼠标离开控件事件
WND_EVENT_WND_VISIBLE = 21 -- 可见状态发生变化事件
WND_EVENT_WND_POS_CHANGE = 22 -- 控件位置发生变化事件
WND_EVENT_WND_SIZECHANGE = 23 -- 窗口大小发生变化事件
WND_EVENT_WND_DESTROY = 24 -- 窗体被销毁事件</code></pre>
<h3>注销控件事件</h3>
<pre><code>co.Widget:removeWidgetEventListener(widget, desc, msgtype)</code></pre>
<pre><code>widget 控件对象
msg 描述
msgtype 窗体事件id</code></pre>
<h3>添加窗体控件自定义属性</h3>
<pre><code>co.Widget:removeCustomData(widget, desc, key, value)</code></pre>
<pre><code>widget 控件对象
desc 描述
key 属性名称</code></pre>
<h3>设置控件点击事件</h3>
<pre><code>co.Widget:addClickEventListener(widget, callback,time)</code></pre>
<pre><code>单击监听
widget 按钮对象
callback 点击回调
time 点击按钮间隔时间</code></pre>
<h3>设置控件触摸事件</h3>
<pre><code>co.Widget:addTouchEventListener(widget, func)</code></pre>
<h3>获取控件触摸开始时位置</h3>
<pre><code>co.Widget:getTouchBeganPosition(widget)</code></pre>
<h3>获取控件触摸移动时位置</h3>
<pre><code>co.Widget:getTouchMovePosition(widget)</code></pre>
<h3>获取控件触摸结束时位置</h3>
<pre><code>co.Widget:getTouchEndPosition(widget)</code></pre>
<h3>设置控件长按触发事件</h3>
<pre><code>co.Widget:addPressEventListener(widget, func)</code></pre>
<h3>设置控件鼠标进入/移出事件</h3>
<pre><code>co.Widget:addMouseMoveEventListener(widget, param)</code></pre>
<pre><code>widget 组件对象
param = {
onEnterFunc: function 鼠标进入回调函数
onLeaveFunc: function 鼠标移出回调函数
onInsideFunc: function 鼠标一直在内部回调函数
}</code></pre>
<h3>设置鼠标按钮事件</h3>
<pre><code>co.Widget:addMouseButtonEventListener(widget, func)</code></pre>
<pre><code>widget 组件对象
param = {
onRightDownFunc: function 鼠标右键点击事件
OnRightUpFunc: function 鼠标右键松开事件
needTouchPos: boolean 需要传入鼠标触摸位置
OnScrollFunc: function 鼠标滚轮滚动事件[3.40.8版本新增]
}</code></pre>
<h3>设置鼠标经过控件显示文本</h3>
<pre><code>co.Widget:addMouseShowTips(widget, str, pos, anr, param)</code></pre>
<pre><code>widget 组件对象
str 文本
pos 位置 table{x = 0,y = 0}
anr 锚点 table{x = 0,y = 0}
param table checkCallback: function 检查接触点是否能展示[函数传入参数: pos返回: true / false ]</code></pre>
<h3>设置控件是否触摸吞噬</h3>
<pre><code>co.Widget:setSwallowTouches(widget, bool)</code></pre>
<h3>获取控件是否触摸吞噬</h3>
<pre><code>co.Widget:getSwallowTouches(widget)</code></pre>
<h3>检查触摸位置是否被父节点裁剪</h3>
<pre><code>co.Widget:isClippingParentContainsPoint(widget, pos)</code></pre>
<pre><code>widget 组件对象
pos 世界坐标 table = {x = 0,y = 0}</code></pre>
<h3>设置组件透明度</h3>
<pre><code>co.Widget:setOpacity(widget,opacity)</code></pre>
<pre><code>widget 组件对象
opacity 透明度0~255</code></pre>
<h3>单击事件监听</h3>
<pre><code>co.Widget:onClickEventListener(widget,callback,time)</code></pre>
<pre><code>widget 控件对象
callback 点击回调
time 点击间隔时间</code></pre>
<h3>双击事件监听</h3>
<pre><code>co.Widget:onDoubleEventListener(widget,callback)</code></pre>
<pre><code>widget 控件对象
callback 双击回调</code></pre>
<h3>设置红点位置</h3>
<pre><code>co.Widget:setRedPointPosition(widget,x,y)</code></pre>
<pre><code>widget 控件对象
x 横向坐标
y 纵向坐标</code></pre>
<h3>设置红点可视状态</h3>
<pre><code>co.Widget:setRedPointVisible(widget,bool)</code></pre>
<pre><code>widget 控件对象
bool 可视状态</code></pre>
<h3>检查控件是否有红点</h3>
<pre><code>co.Widget:isRedPoint(widget)</code></pre>
<pre><code>widget 控件对象</code></pre>