0

I've got a main class containing

registerscreen = new registerScreen(this);
emailRegisterscreen = new emailRegisterScreen(this);

The registerScreen contains a emailButton, with a listener, made in the constructor:

emailButton.addListener(new ClickListener() {
        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            super.touchUp(event, x, y, pointer, button);
            Gdx.app.log("registerscreen", "email clicked");
            gameHolder.setScreen(gameHolder.emailRegisterscreen);
        }
    });

gameHolder is the main class.

Now, this above example only works if I initialize emailRegisterscreen before emailScreen (the snippet above does not work). I was wondering if it's possible to get it working and still defining the registerscreen first?

I'm guessing Java uses the current value of gameHolder.emailRegisterscreen instead of a reference to it or something.

4

1 回答 1

0

Aaaand 我已经想通了。

我有一条线

Gdx.input.setInputProcessor(stage);

在我的屏幕的两个构造函数中。这导致第二个屏幕覆盖输入处理器,同时向用户显示第一个屏幕。(因此我没有错误!)

使固定:

@Override
public void show() {
    Gdx.input.setInputProcessor(stage);
}

将此添加到我的两个屏幕中。

于 2013-03-15T12:33:00.453 回答