码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-31 11:50:48      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

     今天了解到一个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空间的基本方法,比如,设置亮度,设置尺寸大小,翻转水平等等~~~

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:

原文地址:http://blog.csdn.net/u011909633/article/details/48029215

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!