Cocos2d-x3.3Final(7)Focus常用成员函数(C++)

主要函数有 _horizontalLayout->setFocused(true);//设置焦点聚焦在该布局上
_horizontalLayout->setLoopFocus(true);//在该布局内循环设置焦点
_horizontalLayout->setFocusEnabled();//设置该控件上聚焦
_horizontalLayout->isFocusEnabled();//是否可以聚焦


这里说明几点特殊情况 VBox创建的布局,如果isLoopFocus(true);即可以在该布局例循环获取布局里控件的焦点,那么只能在垂直方向上循环获取焦点,在水平方向上不行。
同理如果是HBox创建的布局,且isLoopFocus(true);则只能在水平方向上获取焦点,垂直方向不可以。
如果isLoopFocus(false);则无论水平还是垂直,都不可以,循环获取焦点。
setScale设置的缩放是相对于自己的父类容器的,所以孙容器相对于爷爷容器类的缩放是子容器的缩放系数,乘以孙容器的缩放系数。
如果孙容器没缩放,而子容器缩放了0.5,则相当于孙容器缩放了1,最终相对于爷爷容器的缩放系数是0.5*1还是0.5.


Menu _dpadMenu = Menu::create(); //创建一个菜单
auto winSize = Director::getInstance()->getVisibleSize(); //获取窗口大小
auto leftItem = MenuItemFont::create("Left", CC_CALLBACK_0(UIFocusTestBase::onLeftKeyPressed, this)); //创建菜单项,设置菜单项获得焦点回调函数
_dpadMenu->addChild(leftItem);//加入菜单项到菜单中
//call this method to enable Dpad focus navigation
 Widget::enableDpadNavigation(true);
cocos2d::EventListenerFocus _eventListener = EventListenerFocus::create();//新建事件监听器焦点
_eventListener->onFocusChanged = CC_CALLBACK_2(UIFocusTestBase::onFocusChanged, this);//给此焦点设置回调函数
_eventDispatcher->addEventListenerWithFixedPriority(_eventListener, 1);//为特定的事件添加特定优先级的事件监听
//菜单项回调函数
void UIFocusTestBase::onLeftKeyPress

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值