【v2.x OGE教程 14】控件使用
2014-10-22 15:52
393 查看
【v2.x OGE教程 14】
控件使用
下面介绍精灵、动画精灵、按钮精灵、文本的常用使用方法一、精灵相关
1.添加精灵
//创建精灵Sprite bar_up = new Sprite(400, 0, RegionRes.getRegion(Res.BAR_UP), getVertexBufferObjectManager());
//将精灵添加至BaseEntityGroup或其子类(如:Scene、Layer等)
BaseEntityGroup.attachChild(bar_up);
2.精灵翻转
//两者默认是falsebar_up.setFlippedHorizontal(pFlippedHorizontal);//水平翻转
bar_up.setFlippedVertical(pFlippedVertical)//垂直翻转
3.精灵分离
方法一:object.detachChild(bar_up);//object必须是attachChild时所引用的对象
方法二:
bar_up.detachSelf();//引用其Parent对象将其detach
二、动画精灵相关
1.添加动画精灵
//创建动画精灵 所需帧图必须在同一纹理上AnimatedSprite bird = new AnimatedSprite(0, 0, Res.BRID_YELLOW,
getVertexBufferObjectManager());
//将精灵添加至BaseEntityGroup或其子类(如:Scene、Layer等)
BaseEntityGroup.attachChild(bird);
2.播放动画
AnimatedSprite类中有各种animate方法对帧图进行播放,以下是animate方法中各参数意思:pFrameDurationEach:每帧播放时间(毫秒)
IAnimationListener :监听当播放前后,切换帧,循环结束后。
pLoop:是否循环
pLoopCount:循环次数
pFrameDurations:自定义每帧播放时间
pFirstTileIndex:从哪一帧开始播放
pLastTileIndex:从哪一帧结束播放 (FirstTileIndex必须小于LastTileIndex)
pFrames[]:自定义播放的帧
IAnimationData:设置动画参数的接口
3.播放动画监听
AnimatedSprite类中用IAnimationListener接口来监听动画//AnimatedSprite.LOOP_CONTINUOUS是无限循环
public void onAnimationStarted(final AnimatedSprite pAnimatedSprite, final int pInitialLoopCount);
//动画的帧改变时会调用
public void onAnimationFrameChanged(final AnimatedSprite pAnimatedSprite, final int pOldFrameIndex, final int pNewFrameIndex);
//循环一次结束时调用
public void onAnimationLoopFinished(final AnimatedSprite pAnimatedSprite, final int pRemainingLoopCount, final int pInitialLoopCount);
//动画播放完时调用
public void onAnimationFinished(final AnimatedSprite pAnimatedSprite);
4.分离动画精灵
方法一:object.detachChild(bar_up);//object必须是attachChild时所引用的对象
方法二:
bar_up.detachSelf();//引用其Parent对象将其detach
三、按钮精灵
按钮精灵使用TiledRegion使得按钮在ButtonSprite.State不同状态中切换帧图,加强表达效果,重写onAreaTouched方法给予用户良好体验,注册OnClickListener监听点击事件发生1.添加按钮
//创建按钮精灵 所需帧图必须在同一纹理上ButtonSprite btnOK = new ButtonSprite(0, 0, Res.GAME_READY,
getVertexBufferObjectManager());
this.attachChild(btnOK);
2.按钮监听
btnOK.setOnClickListener(new OnClickListener() {@Override
public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX,
float pTouchAreaLocalY) {
//TODO
}
});
3.按钮状态
NORMAL(0),//普通PRESSED(1),//按下
DISABLED(2);//不可用
DISABLED状态需设置setEnable(pEnabled)才可改变
4.分离按钮
方法一:object.detachChild(btnOK);//object必须是attachChild时所引用的对象
方法二:
btnOK.detachSelf();//引用其Parent对象将其detach
四、文本相关
1.添加文本
//确保BitmapFont已加载,并且已包含所需文字//pCharactersMaximum 所允许最大文本长度,若超出则后面部分不显示
Text bitmapText = new Text(0, 0, bitmapFont, "Hello World!",200
new TextOptions(HorizontalAlign.CENTER),
this.getVertexBufferObjectManager());
//将精灵添加至BaseEntityGroup或其子类(如:Scene、Layer等)
this.attachChild(bitmapText);
2.更新文本
//更新文本后矩形会根据文字内容增大或缩小,所以需要配合setPosition将坐标重新更改bitmapText.setText("Just a Demo");
3.分离文本
方法一:object.detachChild(bitmapText);//object必须是attachChild时所引用的对象
方法二:
bitmapText.detachSelf();//引用其Parent对象将其detach
4.软键盘监听
/**hint 文本为空时出现的信息* text 默认文本
* 输入类型ISoftInput.INPUT_TYPE_XXX
* 最大输入字节数
* 文本监听
Device.getDevice().getSoftInput().showSoftInput(hint, text, inputType, maxTextLength, onSoftInputListener);
五、线、矩形相关
1.创建线、矩形
//创建需要两个点Line line = new Line(0, 0, 0, 0, pVertexBufferObjectManager);
//将精灵添加至BaseEntityGroup或其子类(如:Scene、Layer等)
BaseEntityGroup.attachChild(line);
//创建需要设定宽高
Rectangle rect = new Rectangle(0, 0, 100, 100, getVertexBufferObjectManager());
//将精灵添加至BaseEntityGroup或其子类(如:Scene、Layer等)
BaseEntityGroup.attachChild(rect);
2.分离线、矩形
方法一:object.detachChild(line);//object必须是attachChild时所引用的对象
object.detachChild(rect);//object必须是attachChild时所引用的对象
方法二:
line.detachSelf();//引用其Parent对象将其detach
rect.detachSelf();//引用其Parent对象将其detach
相关文章推荐
- 【v2.x OGE教程 14】 控件使用
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField
- AjaxControlToolkit 微软出的ajax.net 工具使用教程十六 TextBoxWatermarkExtender(水印) 控件的使用
- Scott Mitchell 的ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField
- AjaxControlToolkit 微软出的ajax.net 工具使用教程三 AlwaysVisibleControlExtender(浮动)控件的使用
- AjaxControlToolkit 微软出的ajax.net 工具使用教程十四 PopupControlExtender(弹出) 控件的使用
- AjaxControlToolkit 微软出的ajax.net 工具使用教程九 DragPanelExtender(拖拉)控件的使用
- AjaxControlToolkit 微软出的ajax.net 工具使用教程七 使用UpdatePanel控件(二)
- AjaxControlToolkit 微软出的ajax.net 工具使用教程二 Accordion(折叠)控件的使用
- AjaxControlToolkit 微软出的ajax.net 工具使用教程十一 FilteredTextBoxExtender(筛选) 控件的使用
- Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
- AjaxControlToolkit 微软出的ajax.net 工具使用教程五 ConfirmButtonExtender(确认)控件的使用
- Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
- Scott Mitchell 的ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField
- Scott Mitchell 的ASP.NET 2.0数据教程之48 使用SqlDataSource控件查询数据
- AjaxControlToolkit 微软出的ajax.net 工具使用教程十 DynamicPopulateExtender(动态)控件的使用
- ★ AjaxControlToolkit 微软出的ajax.net 工具使用教程五 ConfirmButtonExtender控件的使用
- PRADO 2.0.1 使用教程专题 -- 验证控件使用教程