Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安发动机触碰触摸事件不工作-外部行动&;取消行动_Java_Android_Andengine - Fatal编程技术网

Java 安发动机触碰触摸事件不工作-外部行动&;取消行动

Java 安发动机触碰触摸事件不工作-外部行动&;取消行动,java,android,andengine,Java,Android,Andengine,我有一个简单的问题。我在屏幕上有一个按钮。我希望isActionDown按下按钮,isActionUp再次按下按钮并使我的角色跳跃。但问题是,如果我按下按钮并将其拖离,按钮将保持按下状态。如果用户拖离按钮,我希望按钮再次向上推 我怎样才能创造出想要的效果?isActionCancel似乎不起作用 private void addButton(){ goB = new AnimatedSprite(240, 364, ResourceManager.getInstance().go

我有一个简单的问题。我在屏幕上有一个按钮。我希望isActionDown按下按钮,isActionUp再次按下按钮并使我的角色跳跃。但问题是,如果我按下按钮并将其拖离,按钮将保持按下状态。如果用户拖离按钮,我希望按钮再次向上推

我怎样才能创造出想要的效果?isActionCancel似乎不起作用

    private void addButton(){
    goB = new AnimatedSprite(240, 364, ResourceManager.getInstance().go_region, vbom){
        @Override
        public boolean onAreaTouched(final TouchEvent event, final float x, final float y){


            if (event.isActionDown()){
                goB.animate(new long[]{ 250 }, new int[] { 1 }, true);
                /*if(event.isActionCancel()){
                    goB.animate(new long[]{ 250 }, new int[] { 0 }, true);
                }*/
            }
            if (event.isActionUp()){
                goB.animate(new long[]{ 250 }, new int[] { 0 }, true);
                fresh = true;
                playerBody.applyLinearImpulse(new Vector2(0, 45), playerBody.getPosition());
            }


            if (event.isActionCancel() || event.isActionOutside()){
                goB.animate(new long[]{ 250 }, new int[] { 0 }, true);
            }
            return true;
        }
    };
    goB.setScale(3);

    registerTouchArea(goB);
    attachChild(goB);

    goB.animate(250);
}
我遇到了最困难的时刻,我尝试了上面代码的各种变体。如果你有解决办法,请告诉我

谢谢你的帮助

使用

setTouchAreaBindingOnActionDownEnabled(true);
setTouchAreaBindingOnActionMoveEnabled(true);

功能

谢谢您的回复。在我的代码上面加上这一点就可以了,当我按住按钮并拖动时,按钮仍然被按下。在我被释放后,它会激活为actionup。是否可以使用此选项,以便将手指从按钮上移开,使按钮可以执行第三个动作(弹起而不使角色跳跃)?顺便说一句,这两行代码是必需的。这些行改变了什么?也许你可以将你发布的链接的相关内容添加到你的答案中,为未来的访问者提供一些上下文。我添加了…setTouchAreaBindingOnActionDownEnabled(true);&setTouchAreaBindingOnActionMoveEnabled(真);但现在问题有了一点变化。当我按下并拖动时,按钮不会松开。按钮一直按到我放开为止,这看起来很有趣。我想只有当我按下按钮并在上面释放时,按钮才会重置,就像你在现实中遇到的普通按钮一样。