再探cocos2d-x------(3)

     今天了解到一个cocos中UI的基类——widget。cocostudio中所有UI控件的基类都是widget。

     首先进入Widget类,有个onFocusChange()函数,这个函数的作用是聚焦,对UI上的控件获取聚焦。控件聚焦应该是获取用户点击鼠标获键盘的能力。代码中的widgetGetFocus->setFocused(true),使控件对象获得焦点。

   

virtual Widget* findNextFocusedWidget(FocusDirection  direction,
  Widget *  current 
 )
官方解释:

当一个widget处于某一个layout中的时候,你可以通过调用这个方法在指定的方向获取下一个被focus的widget 如果一个widget没有在一个layout中,调用这个方法会获得该widget自身

参数
dir在该layout中找寻下一个被focus的widget的方向
current目前被focus的widget
返回
该layout中下一个被focus的widget
this->setAnchorPoint(Vec2(0.5f, 0.5f));//设置锚点为(0.5f,0.5f)。
 this->setTouchEnabled(true);//设置widget为可响应触摸。
<span style="font-size: 14px;">void Widget::setTouchEnabled(bool enable)
{
    if (enable == _touchEnabled)
    {
        return;
    }
    _touchEnabled = enable;
    if (_touchEnabled)
    {
        _touchListener = EventListenerTouchOneByOne::create();//设置监听单点触摸事件
        CC_SAFE_RETAIN(_touchListener);//retain()方法宏定义,增加一次,_touchListener 监听指针的引用计数。

_touchListener->setSwallowTouches(true); //为ture,设置屏蔽层,即屏蔽层下面的按钮都无法点击,而自己层的按钮可以点击。不能穿透,要想穿透,可以设置成false.当"setSwallowTouches"设置为true,然后,在onTouchBegan 方法返回true,将会吃掉触控事件,防止其他监听器使用这个事件。

 
 

_touchListener->onTouchBegan = CC_CALLBACK_2(Widget::onTouchBegan, this); 

_touchListener->onTouchMoved = CC_CALLBACK_2(Widget::onTouchMoved, this);

 _touchListener->onTouchEnded = CC_CALLBACK_2(Widget::onTouchEnded, this);

 _touchListener->onTouchCancelled = CC_CALLBACK_2(Widget::onTouchCancelled, this);

 _eventDispatcher->addEventListenerWithSceneGraphPriority(_touchListener, this); //注册监听器 }

 else { _eventDispatcher->removeEventListener(_touchListener); CC_SAFE_RELEASE_NULL(_touchListener); }}

剩下的代码,基本上是设置UI空间的基本方法,比如,设置亮度,设置尺寸大小,翻转水平等等~~~

(仅个人理解,如有不对还请指正。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值