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