Як зробити спливаюче вікно з Scene2D?


13

У мене екран головного меню з логотипом і купою кнопок. Після натискання кнопки "Логін" я спливає діалогове вікно із запитом імені користувача та пароля.

Це добре працює, крім «спливучого». На даний момент нове діалогове вікно просто змінює все про, але я хотів би розмістити його над поточною сценою.

Я просто вивчаю Scene2D.

Відповіді:


10

Діалог краще підходить для модальних спливаючих вікон, і він включає таблицю «кнопка» та «вміст», яка вже знаходиться у вікні (як кажуть документи ). Ви можете схопити ці таблиці за допомогою getButtonTable () або getContentTable ().

Діалогове вікно полегшує роботу зі спливаючими вікнами. Наприклад, ось діалогове вікно підтвердження:

Dialog dialog = new Dialog("Warning", skin, "dialog") {
    public void result(Object obj) {
        System.out.println("result "+obj);
    }
};
dialog.text("Are you sure you want to quit?");
dialog.button("Yes", true); //sends "true" as the result
dialog.button("No", false);  //sends "false" as the result
dialog.key(Keys.Enter, true); //sends "true" when the ENTER key is pressed
dialog.show();

Ви можете використовувати інші об'єкти, скажімо, так / ні / скасувати параметри.


Чи можливо, щоб діалогове вікно встановило його розмір автоматично, залежно від його вмісту? Схоже, це занадто мало на прикладі вище ..
Озеро

Я думаю, це можливо, зателефонувавши метод pack () :)
Озеро

0

Добре, оскільки ніхто не відповів, я опублікую своє рішення.

Додаючи акторів до сцени, а не виконуючи:

stage.add(actor);

Який додає клітинку з даним Актором у ній, я зробив наступне:

stage.addActor(actor);

Тоді я міг вільно перекривати акторів і рухати / масштабувати / обертати їх за допомогою тюнінгу. Єдине, напевно, що я бачу в цьому, це абсолютне розміщення віджетів.

Щоб розмістити їх, вам потрібно зателефонувати:

actor.setPosition(x, y);

Тож це може бути дещо складно при роботі з пристроями Android різного співвідношення сторін та роздільної здатності.


Абсолютна позиція не стільки проблема, поки ви встановите статичний розмір світу та використовуєте вікно перегляду зі сценою. Він буде обробляти масштабування, розтягування та інші незрозумілі властивості поводження із співвідношенням сторін та роздільною здатністю.
nhydock
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.