如何在初始化之后将onAreaTouched监听器设置为TiledSprite或ButtonSprite?

时间:2015-02-22 14:30:05

标签: android button sprite andengine

我知道我可以像这样设置这个监听器初始化:

buttonSprite = new ButtonSprite(X, Y, mITextureRegion,
            mEngine.getVertexBufferObjectManager()) {
        @Override
        public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
                float pTouchAreaLocalX, float pTouchAreaLocalY) {

            if (pSceneTouchEvent.isActionDown()) {

                return true;
            }
            return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX,
                    pTouchAreaLocalY);
        }
    };

这很有效。但我想要这样的事情:

buttonSprite = new ButtonSprite(X, Y, mITextureRegion,
            mEngine.getVertexBufferObjectManager());

首先创建它,然后设置onAreaTouched(我猜必须是这样的,但不起作用因为不存在这个setter)

buttonSprite.setOnAreaTouched(new onAreaTouched(TouchEvent pSceneTouchEvent,
                float pTouchAreaLocalX, float pTouchAreaLocalY) {

            if (pSceneTouchEvent.isActionDown()) {

                return true;
            }
            return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX,
                    pTouchAreaLocalY);
        }
    };

我找不到任何模式。这可能吗?

1 个答案:

答案 0 :(得分:-1)

你不能,onAreaTouched不是一个事件,它只是sprite类中的一个方法,你可以在子类中覆盖它(比如第一个例子,它是一个匿名子类)。

但是你可以扩展sprite类,为事件创建一个接口,将它的列表添加到新的sprite类并在onAreaTouched中运行它的方法。