Admin (обсуждение | вклад) м (Admin переименовал страницу InnerCore/Введение в GUI/Одно-оконный интерфейс в InnerCore/Введение в GUI/Однооконный интерфейс) |
м (→Одно-оконный Интерфейс) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 18: | Строка 18: | ||
drawing: [/* элементы отрисовки фона */], | drawing: [/* элементы отрисовки фона */], | ||
elements: {/* описание элементов */} | elements: {/* описание элементов */} | ||
− | } | + | }</syntaxhighlight>Открытие окна<syntaxhighlight lang="Javascript"> |
var testUiScreen = new UI.Window({/* ... объект описания ... */}); | var testUiScreen = new UI.Window({/* ... объект описания ... */}); | ||
var container = new UI.Container(); | var container = new UI.Container(); | ||
Строка 24: | Строка 24: | ||
container.openAs(testUiScreen); // откроет интерфейс | container.openAs(testUiScreen); // откроет интерфейс | ||
var content = testUiScreen.content; // получение описания интерфейса для дальнейших манипуляций</syntaxhighlight> | var content = testUiScreen.content; // получение описания интерфейса для дальнейших манипуляций</syntaxhighlight> | ||
+ | Особенности/баги: | ||
+ | Размеры элементов могут меняться также как и их положение. | ||
+ | Например: | ||
+ | <syntaxhighlight lang="Javascript">location: { | ||
+ | width: 120, | ||
+ | height: 120 | ||
+ | }, | ||
+ | elements: { | ||
+ | "element1": {type: "button", x: 0, y: 0}, | ||
+ | "element2": {type: "button", x: 0, y: 1000}, | ||
+ | "element3": {type: "button", x: 1000/2, y: 0}, | ||
+ | }</syntaxhighlight> | ||
+ | Высота следующего элемента после первого будет = 1000, но если говорить про положение по длине то стоит отметить, что каждые 60 юнитов, нужно принять как 1000/положение элемента в длину, т.к ширина созданного окна делиться на 1000, именно окно а не весь экран. |
Одно-оконный интерфейс используется для наэкранных кнопок или для совершенно пустого интерфейса. Отличие одно-оконного интерфейса от стандартного является в поддержке прокрутки интерфейса, изменении его ширины и высоты, задание его как игровой оверлэй(не мешает тапам вне интерфейса).
Объект описания и открытие одно-оконного интерфейса:
{
location: {
x: число, // перемещение по горизонтали
y: число, // перемещение по вертикали
width: число, // ширина окна интерфейса
height: число, // высота окна интерфейса
scrollWidth: число, // ширина скролла внутри окна
scrollHeight: число, // высота скролла внутри окна
},
params: {
// стилизация (изменение стандартных текстур)
},
drawing: [/* элементы отрисовки фона */],
elements: {/* описание элементов */}
}
var testUiScreen = new UI.Window({/* ... объект описания ... */});
var container = new UI.Container();
testUiScreen.setAsGameOverlay(true); //сделайет интерфейс как игровой оверлэй.
container.openAs(testUiScreen); // откроет интерфейс
var content = testUiScreen.content; // получение описания интерфейса для дальнейших манипуляций
Особенности/баги: Размеры элементов могут меняться также как и их положение. Например:
location: {
width: 120,
height: 120
},
elements: {
"element1": {type: "button", x: 0, y: 0},
"element2": {type: "button", x: 0, y: 1000},
"element3": {type: "button", x: 1000/2, y: 0},
}
Высота следующего элемента после первого будет = 1000, но если говорить про положение по длине то стоит отметить, что каждые 60 юнитов, нужно принять как 1000/положение элемента в длину, т.к ширина созданного окна делиться на 1000, именно окно а не весь экран.