下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】如何解决AndroidLibgdx中ScrollPane和Actor事件冲突问题
/upload/information/20200623/125/126548.gif/**
*
Created
by
Danny.姜
on
17/7/26.
*/
public
class
TestAdapter
extends
ApplicationAdapter
{
Stage
stage;
ScrollPane
scrollPane;
Table
table;
private
float
lastStageX;
private
float
lastStageY;
ActorGestureListener
actorGestureListener;
private
InputListener
inputListener
=
new
InputListener()
{
@Override
public
boolean
touchDown(InputEvent
event,
float
x,
float
y,
int
pointer,
int
button)
{
Log.e("DANNY",
"actor
touch
down");
if
(pointer
==
0)
{
lastStageX
=
event.getStageX();
lastStageY
=
event.getStageY();
inStage
=
false;
}
return
true;
}
@Override
public
void
touchDragged(InputEvent
event,
float
x,
float
y,
int
pointer)
{
Log.e("DANNY",
"actor
touch
dragging");
Actor
actor
=
event.getListenerActor();
if
(cancelTouchFocus)
{
float
currentX
=
event.getStageX();
float
currentY
=
event.getStageY();
actor.moveBy(currentX
-
lastStageX,
currentY
-
lastStageY);
lastStageX
=
currentX;
lastStageY
=
currentY;
if
(!inStage)
{
Vector2
vector2
=
actor.localToStageCoordinates(new
Vector2());
actor.setPosition(vector2.x,
vector2.y);
stage.addActor(actor);
stage.cancelTouchFocusExcept(this,
actor);
inStage
=
true;
}
}
}
@Override
public
void
touchUp(InputEvent
event,
float
x,
float
y,
int
pointer,
int
button)
{
Log.e("DANNY",
"actor
touch
up");
cancelTouchFocus
=
false;
}
};
@Override
public
void
create()
{
super.create();
stage
=
new
Stage();
stage.setDebugAll(true);
Gdx.input.setInputProcessor(stage);
actorGestureListener
=
new
ActorGestureListener()
{
@Override
public
boolean
longPress(Actor
actor,
float
x,
float
y)
{
Log.e("DANNY",
"actor
gesture
listener
long
pressed");
cancelTouchFocus
=
true;
return
super.longPress(actor,
x,
y);
}
};
table
=
new
Table();
scrollPane
=
new
ScrollPane(table,
new
ScrollPane.ScrollPaneStyle());
scrollPane.setSize(stage.getWidth(),
500);
scrollPane.setScrollingDisabled(false,
true);
scrollPane.setCancelTouchFocus(false);
scrollPane.setSmoothScrolling(true);
scrollPane.setFlingTime(0);
stage.addActor(scrollPane);
initTable();
}
private
boolean
cancelTouchFocus
=
false;
private
boolean
inStage
=
false;
private
void
initTable()
{
for
(int
i
=
0;
i
<
10;
i++)
{
BaseGdxActor
actor
=
new
BaseGdxActor(new
TextureRegion(
new
Texture("badlogic.jpg")));
table.add(actor).width(actor.getWidth()).pad(10);
actor.addListener(actorGestureListener);
actor.addListener(inputListener);
}
}
@Override
public
void
render()
{
super.render();
Gdx.gl.glC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年试用期解除劳动合同经典版(四篇)
- 2024年板材购销合同范文(3篇)
- 2024年材料购销合同官方版(3篇)
- 2024年工程安全合同范本(二篇)
- 中考复习句型排列与表述技巧
- 20个全世界最惊人的城市天际线
- 当代大学生网络消费调查报告-西北民族大学
- 某集团垃圾邮件解决方案
- 社会工作者考试:儿童社会工作考点巩固
- 会计学第六版教学课件第13章 财务报表分析
- 小学语文中段整本书阅读的指导策略研究 中期报告
- 原子弹设计方案(巴基斯坦,1992)
- 2023年企业所得税汇算清缴带公式和填报说明全套申报表
- 计划生育专题知识讲座培训课件
- 影视投资方案
- 国家版图知识竞赛试题及答案
- 小米科技公司财务风险分析及防范
- 部编版二年级语文下册第六单元大单元整体作业设计
- 2016-2023年广东轻工职业技术学院高职单招(英语/数学/语文)笔试历年考点试题甄选合集含答案解析
- 高中化学教学中的跨学科融合
- 湛江2024网约车模拟考试题库下载
评论
0/150
提交评论