加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx 3.X 中 Menu, MenuItem 注意事项

发布时间:2020-12-14 19:32:45 所属栏目:百科 来源:网络整理
导读:MenuItem显示 MenuItem和Menu的使用创建的例子中已经说的很清楚了。即: auto userItem = MenuItemImage::create( "UserNormal.png","UserSelected.png",CC_CALLBACK_1(MeijiaMain::menuLoginCallback,this)); userItem-setPosition(Vec2(origin.x + visible

MenuItem显示

MenuItem和Menu的使用创建的例子中已经说的很清楚了。即:

auto userItem = MenuItemImage::create(
                                     "UserNormal.png","UserSelected.png",CC_CALLBACK_1(MeijiaMain::menuLoginCallback,this));
    
userItem->setPosition(Vec2(origin.x + visibleSize.width - userItem->getContentSize().width/2 - 20,visibleSize.height - userItem->getContentSize().height/2 - 30));

// create menu,it's an autorelease object
menu = Menu::create(userItem,NULL);
menu->setPosition(Vec2::ZERO);
顺序就是:创建MenuItem,设置Item的位置等属性,创建Menu,设置Menu的位置等属性。最后将Menu放到一个层上显示。

注意:如果不使用Menu,单独将MenuItem放在层上,是可以显示的。但是交互以及函数调用是无效的。


MenuItem,Menu添加顺序

如果需要再添加一个MenuItem,操作很简单,与层添加Menu相同就是Menu直接addChild即可。但是需要注意的是(1)MenuItem加入到Menu;(2)Menu加入到层。这两件事情的顺序

如果将(1)(2)顺序倒置为(2)(1),则新加入的MenuItem无法显示。

解决方法:使用(1)(2)顺序;或者再MenuItem新加之后再调用一次(2),即(2)(1)(2)顺序。


禁用MenuItem

再来看看,如果需要将MenuItem禁用,仅仅调用MenuItem是不起任何作用的,该显示显示,该交互交互。需要setEnabled(false) 整个Menu

// userItem->setEnabled(false)	// 无效操作
menu->setEnable(false)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读