现在的位置: 首页 > 综合 > 正文

IOS 菜单类

2017年02月21日 ⁄ 综合 ⁄ 共 2280字 ⁄ 字号 评论关闭

菜单类(CCMenu)可以由图片,系统文字或者自定义文字组成。继承CCLayer,
CCCopy---->object---->node----->layer---->menu而CCMenuItem并不继承CCMenu,(而是继承自CCNode类)需要注意
CCMenu可以看成一个菜单层类容器,专门盛放CCMenuItem类对象
node----->CCMenuItem---->MenuItemLabel  ---->atlasFont

                                                                       ----->ItemFont                                 
                                    ----->MenuItemSprite  ---->MenuItemImage
                                    ----->MenuItemToggle
1.CCMenuItemImage//适合做前进/后退按钮,鼠标离开后恢复原状
注:每次点击image图片时候,无论它是否加入到Toggle中,总会先变换自己的第二种图片状态,再换成其他图片
意:继承自CCMenuItemSprite,包含三个对象,分别表示未选中、选中和禁止三个状态的图像。
(禁止状态的图像怎么用?  item1 ->setEnabled(false);)
    CCMenuItemImage* item1 = CCMenuItemImage::create("PlayMenu.png", "PlayMenu.png");
    item1->setTarget(this, menu_selector(MainLayer::menuPlayGmaeCallback));
    CCMenu* menu = CCMenu::create(item1, NULL);
    menu->setPosition(ccp(130, 225));
    this->addChild(menu);
2.CCMenuItemToggle//适合做开关,可以有无数种状态,鼠标每次点击后改变状态图片。
注:无论增加多少中图片,最后一定加上NULL(内部由MenuItem数组负责展示不同的状态)
    CCMenuItemImage* image4 = CCMenuItemImage::create("Icon.png", "Icon.png");
    CCMenuItemToggle* item1 = CCMenuItemToggle::createWithTarget(this, menu_selector(MainScene::clickBtnMusic), image, image2, image4,image3,  NULL);
    CCMenu* menu = CCMenu::create(item1, NULL);
    menu->setPosition(ccp(240, 160));
    this->addChild(menu,0);
3.CCMenuItemFont//以字体转换成itemfont,点击会变大 -------这是一个可以设置字体的菜单项
注:添加文字的三种方式中没有它,一方面font虽然能setString,但是它已经不单单以文字形式出现了,而是以Lable形式,(它的默认属性为CCMenuItemFont)
意:可以把它理解为一个节点,上面有个文字,文字在节点的左下角。
  CCMenuItemFont* font1 =  CCMenuItemFont::create("abc中文", this, menu_selector(MainScene::clickBtnMusic));
    //font1->setContentSize(CCSizeMake(300, 10));
    CCMenu* menu = CCMenu::create( font1,NULL);
    menu->setPosition(ccp(240, 160));
    menu->setColor(ccc3(255, 0, 0));
    menu->alignItemsInColumns(1);
    menu->alignItemsVerticallyWithPadding(50);
    this->addChild(menu,1);

    //font1->setString("001");
4.设置文字的三种方式

@1.CCLabelAtlas//自定义字体,需要一个图片,最多只能显示12个数字

注:最后的参数为ASCLL值,

CCLabelAtlas* diceCount=CCLabelAtlas::create("12340123456546541321", "set1_player_hud3.png", 14, 21, '0');
    CCMenuItemLabel* label = CCMenuItemLabel::create(diceCount, this, menu_selector(MainScene::clickBtnMusic));
    CCMenu* menu = CCMenu::create(label, NULL);
    menu->setPosition(ccp(240, 160));
    this->addChild(menu);
    label->setString("120h1:2");

抱歉!评论已关闭.