下面是基本的菜单操作,还可以继承某些进行改变;@H_403_1@
//设置总的菜单的字体大小;@H_502_4@@H_403_1@
CCMenuItemFont.setFontSize(30);@H_403_1@
//设置文字字体,默认使用系统的;@H_502_4@@H_403_1@
CCMenuItemFont.setFontName("DroidSans"@H_502_4@);@H_403_1@
1.精灵小菜单;@H_502_4@@H_403_1@
//图片精灵Item@H_502_4@@H_403_1@
CCSpritespriteNormal=CCSprite.sprite("menuitemsprite.png"@H_502_4@,CGRect.make(0,23*2,115,23));@H_403_1@
CCSpritespriteSelected=CCSprite.sprite(403_1@
CCSpritespriteDisabled=CCSprite.sprite(403_1@
//将精灵添加到菜单中;@H_502_4@@H_403_1@
CCMenuItemSpriteitem1=CCMenuItemSprite.item(spriteNormal,spriteSelected,spriteDisabled,this@H_502_4@,"menuCallback"@H_502_4@);@H_403_1@
2.有两个状态(初始和按下)的按钮菜单;@H_502_4@@H_403_1@
//单纯的图片菜单;@H_502_4@@H_403_1@
CCMenuItemitem2=CCMenuItemImage.item("SendscoreButton.png"@H_502_4@,255)">"SendscoreButtonPressed.png"@H_502_4@,255)">"menuCallback2"@H_502_4@);@H_403_1@
3.有两个渲染颜色显示方式的菜单,@H_502_4@@H_403_1@
//字体菜单(改变图片文字渲染颜色)----字体标签(颜色(失去焦点的颜色和获得焦点的文字))@H_502_4@@H_403_1@
//参数:字符串,文字图片,宽,高,分割符;@H_502_4@@H_403_1@
CCLabelAtlaslabelAtlas=CCLabelAtlas.label("0123456789"@H_502_4@,255)">"fps_images.png"@H_502_4@,16,24,255)">'.'@H_502_4@);@H_403_1@
CCMenuItemLabelitem3=CCMenuItemLabel.item(labelAtlas,255)">"menuCallbackDisabled"@H_502_4@);@H_403_1@
item3.setDisabledColor(ccColor3B.ccc3(32,32,64));@H_403_1@
item3.setColor(ccColor3B.ccc3(200,200,255));@H_403_1@
4.就一个简单的字体菜单;@H_502_4@@H_403_1@
//FontItem简单的菜单项@H_502_4@:参数(字符,父节点,方法名称);@H_502_4@@H_403_1@
CCMenuItemitem4=CCMenuItemFont.item("Itoggleenableitems"@H_502_4@,255)">"menuCallbackEnable"@H_502_4@);@H_403_1@
//LabelItem(BitmapFontAtlas)自定义字体的菜单项;(该字体会制动转换成大写)@H_502_4@@H_403_1@
CCBitmapFontAtlaslabel=CCBitmapFontAtlas.bitmapFontAtlas("configuration"@H_502_4@,255)">"bitmapFontTest3.fnt"@H_502_4@);@H_403_1@
CCMenuItemLabelitem5=CCMenuItemLabel.item(label,255)">"menuCallbackConfig"@H_502_4@);@H_403_1@
//Testingissue#500@H_502_4@@H_403_1@
item5.setScale(0.8f);//设置大小;@H_502_4@@H_403_1@
6.就一个单纯的文字,然后不停的闪烁颜色;@H_502_4@@H_403_1@
//FontItem文字菜单;@H_502_4@@H_403_1@
CCMenuItemFontitem6=CCMenuItemFont.item("Quit"@H_502_4@,255)">"onQuit"@H_502_4@);@H_403_1@
CCIntervalActioncolor_action=CCTintBy.action(0.5f,ccColor3B.ccc3(0,-255,-255));@H_403_1@
CCIntervalActioncolor_back=color_action.reverse();@H_403_1@
CCIntervalActionseq=CCSequence.actions(color_action,color_back);@H_403_1@
//持续动画---@H_502_4@@H_403_1@
item6.runAction(CCRepeatForever.action(seq));@H_403_1@
7.设置菜单的文字效果;@H_502_4@@H_403_1@
CCMenuItemFont.setFontName("DroidSans"@H_502_4@);@H_403_1@
CCMenuItemFont.setFontSize(28);@H_403_1@
CCBitmapFontAtlaslabel=CCBitmapFontAtlas.bitmapFontAtlas("EnableAtlasItem"@H_502_4@,255)">"bitmapFontTest3.fnt"@H_502_4@);@H_403_1@
CCMenuItemLabelitem1=CCMenuItemLabel.item(label,255)">"menuCallback2"@H_502_4@);@H_403_1@
CCMenuItemFontitem2=CCMenuItemFont.item("---GoBack---"@H_502_4@,255)">"menuCallback"@H_502_4@);@H_403_1@
8.点击交换文字的菜单类似自带的屏幕亮度调节@H_502_4@//@H_502_4@@H_403_1@
//默认为off选项;@H_502_4@@H_403_1@
CCMenuItemToggleitem4=CCMenuItemToggle.item("menuCallback"@H_502_4@,CCMenuItemFont.item("Off"@H_502_4@));@H_403_1@
//多个选项菜单项个list集合;@H_502_4@@H_403_1@
ArrayList<CCMenuItemFont>more_items=new@H_502_4@ArrayList<CCMenuItemFont>();@H_403_1@
more_items.add(CCMenuItemFont.item("33%"@H_502_4@));@H_403_1@
more_items.add(CCMenuItemFont.item("66%"@H_502_4@));@H_403_1@
more_items.add(CCMenuItemFont.item("100%"@H_502_4@));@H_403_1@
//TIP:youcanmanipulatetheitemslikeanyotherNSMutableArray@H_502_4@@H_403_1@
//添加到字体list集合菜单;@H_502_4@@H_403_1@
item4.getSubItemsRef().addAll(more_items);@H_403_1@
9.@H_403_1@
CCMenuItemFont.setFontName("DroidSerif"@H_502_4@);@H_403_1@
CCMenuItemFont.setFontSize(34);@H_403_1@
CCBitmapFontAtlaslabel=CCBitmapFontAtlas.bitmapFontAtlas("goback"@H_502_4@,255)">"bitmapFontTest3.fnt"@H_502_4@);@H_403_1@
CCMenuItemLabelback=CCMenuItemLabel.item(label,255)">"backCallback"@H_502_4@);@H_403_1@
//添加到菜单容器中;@H_502_4@@H_403_1@
CCMenumenu=CCMenu.menu(title1,title2,item1,item2,title3,title4,item3,item4,back);//9items.@H_502_4@@H_403_1@
//设置:显示优先级;越大越是在前;@H_502_4@@H_502_4@@H_403_1@
menu.alignItemsInColumns(new@H_502_4@int@H_502_4@[]{2,2,1});@H_403_1@
addChild(menu);@H_403_1@
最后要由CCmenu@H_502_4@来管理@H_502_4@@H_403_1@
CCMenumenu=CCMenu.menu(item1,item5,item6);@H_403_1@
menu.alignItemsVertically();@H_403_1@
//将菜单设置为垂直的;@H_502_4@@H_403_1@
menu.alignItemsVertically();@H_403_1@
CGSizes=CCDirector.sharedDirector().winSize();@H_403_1@
int@H_502_4@i=0;@H_403_1@
//共有6个;循环重新设置位置;@H_502_4@--注意这里的@H_502_4@getChildren@H_502_4@方法是获取该主菜单的所有的子选项@H_502_4@;@H_502_4@@H_502_4@@H_403_1@
for@H_502_4@(CCNodechild:menu.getChildren()){@H_403_1@
final@H_502_4@CGPointdstPoint=child.getPositionRef();@H_403_1@
int@H_502_4@offset=(int@H_502_4@)(s.@H_577_301@width@H_502_4@/2+20);@H_403_1@
if@H_502_4@(i%2==0)@H_403_1@
offset=-offset;@H_403_1@
child.setPosition(dstPoint.@H_577_301@x@H_502_4@+offset,dstPoint.@H_577_301@y@H_502_4@);@H_403_1@
child.runAction(@H_403_1@
CCEaseElasticOut.action(CCMoveBy.action(2.0f,CGPoint.ccp(dstPoint.@H_577_301@x@H_502_4@-offset,0)),@H_403_1@
0.35f)@H_403_1@
);@H_403_1@
i++;@H_403_1@
}@H_403_1@
//设置@H_502_4@3@H_502_4@为没有焦点;@H_502_4@@H_403_1@
@H_577_301@disabledItem@H_502_4@=item3;@H_403_1@
//没有焦点;@H_502_4@@H_403_1@
@H_577_301@disabledItem@H_502_4@.setIsEnabled(false@H_502_4@);@H_403_1@
//最后不要忘了将菜单添加到该布景中;@H_502_4@@H_403_1@
//这里,位置焦点等属性设置好再添加到主场景中;@H_502_4@@H_403_1@
addChild(menu);@H_403_1@
item1.setScaleX(1.5f);@H_403_1@
item2.setScaleY(0.5f);@H_403_1@
item3.setScaleX(0.5f);@H_403_1@
还可以动态改变菜单的位置,颜色等变化;通过动画和一些属性来共同改变;@H_403_1@
public@H_502_4@void@H_502_4@menuCallbackOpacity(Objectsender){@H_403_1@
CCMenuItemitem=(CCMenuItem)sender;@H_403_1@
CCMenumenu=(CCMenu)item.getParent();@H_403_1@
//获取最左边的y轴,@H_502_4@@H_403_1@
int@H_502_4@opacity=menu.getOpacity();@H_403_1@
if@H_502_4@(opacity==128)@H_403_1@
menu.setOpacity((byte@H_502_4@)255);@H_403_1@
else@H_502_4@@H_403_1@
menu.setOpacity((byte@H_502_4@)128);@H_403_1@
}@H_403_1@
//改变菜单排列方向;@H_502_4@@H_403_1@
void@H_502_4@menuCallbackAlign(Objectsender){@H_403_1@
@H_577_301@alignedH@H_502_4@=!@H_577_301@alignedH@H_502_4@;@H_403_1@
if@H_502_4@(@H_577_301@alignedH@H_502_4@)@H_403_1@
alignMenusH();@H_403_1@
else@H_502_4@@H_403_1@
alignMenusV();@H_403_1@
}@H_403_1@
//先固定菜单,下面的是按比例的最好的;@H_502_4@@H_403_1@
CGSizes=CCDirector.sharedDirector().winSize();@H_403_1@
item1.setPosition(s.@H_577_301@width@H_502_4@/2-150,s.@H_577_301@height@H_502_4@/2);@H_403_1@
item2.setPosition(s.@H_577_301@width@H_502_4@/2-200,192)">height@H_502_4@/2);@H_403_1@
item3.setPosition(s.@H_577_301@width@H_502_4@/2,192)">height@H_502_4@/2-100);@H_403_1@
//返回;@H_502_4@@H_403_1@
void@H_502_4@menuCallbackBack(Objectsender){@H_403_1@
((CCMultiplexLayer)getParent()).switchTo(0);@H_403_1@
}@H_403_1@
//先取消焦点;@H_403_1@
@H_577_301@disabledItem@H_502_4@.setIsEnabled(!@H_577_301@disabledItem@H_502_4@.isEnabled());@H_403_1@