Добавлен , опубликован

Основы Интерфейса

Содержание:
UI: FrameTypes (типы фреймов)
кратко: здесь рассмотрим весь список FrameTypes.
По FrameType можно многое сказать о том, что этот фрейм будет делать в большинстве случаев. Это список типов фреймов из стандартного fdf-файла warcraft 3. элементы интерфейса
некоторые шаблоны указаны в файле ui/framedef/ui/EscMenuTemplates.fdf Эти шаблоны (button, slider, scrollbar, popumenu, checkbox и др). и вы можете брать это в качестве заготовки, и использовать их. Чтобы не создавать каждый раз text, button и др используют шаблоны.
фреймы (элементарные фреймы, из которых состоят более сложные фреймы)
  • BACKDROP (задний фон). Events: None​
  • HIGHLIGHT (световой эффект). Events: None​
  • TEXT (текст: короче шрифт, размер, цвет, выравнивание и текст). Есть возможность сделать из этого фрейма некую кнопку. У нее работает событие клика, наведения и др. Однако, не у всех текстовых фреймов клик работает (возможно моя ошибка в коде, или баг). Events: CONTROL_CLICK, MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL
  • TIMERTEXT (текст таймера, короче шрифт. Ни чем не отличается от TEXT, использует те же функции что и TEXT). Events: CONTROL_CLICK, MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL​
фреймы-кнопки. Многие кнопки являются кликабельными, точно также как и TEXT. TEXT можно отследить клик. Но выделю основные фреймы как кнопки:
  • BUTTON (кнопка с изображением: активация действия). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL (CONTROL_CLICK with BlzFrameClick)​
  • CHECKBOX (кнопка с флагом: ставим флаг/снимает флаг). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL, CHECKBOX_CHECKED, CHECKBOX_UNCHECKED, (CONTROL_CLICK with BlzFrameClick)​
  • EDITBOX (поле редактирования при вводе: при клике фокус клавы переключается на EditBox, и можете редактировать внутри поля). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL, EDITBOX_TEXT_CHANGED, EDITBOX_ENTER, (CONTROL_CLICK with BlzFrameClick)​
  • POPUPMENU (родительское контекстное меню : нажатие на кнопку вызывает список MENU). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_WHEEL, CONTROL_CLICK, POPUPMENU_ITEM_CHANGED
  • TEXTBUTTON (кнопка с текстом: активация действия. Ничем не отличается от BUTTON, только наличием текста). Events: CONTROL_CLICK, MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL​
  • MENU (контекстное меню. Разницы между POPUPMENU и MENU мб и не быть. По fdf-files иногда вместо MENU прописывают POPUPMENU, что говорит о том, что нет строгой типизации ффреймов в вакрафте). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL​
фреймы-кнопки с приставкой GLUE, при нажимании издают звук. Разницы с обычными никакой нет, только звуком.
  • GLUEBUTTON Events:CONTROL_CLICK, MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL
  • GLUECHECKBOX Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL, CHECKBOX_CHECKED, CHECKBOX_UNCHECKED, (CONTROL_CLICK with BlzFrameClick)​
  • GLUEEDITBOX Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL, EDITBOX_TEXT_CHANGED, EDITBOX_ENTER, (CONTROL_CLICK with BlzFrameClick)​
  • GLUEPOPUPMENU Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_WHEEL, CONTROL_CLICK, POPUPMENU_ITEM_CHANGED​
  • GLUETEXTBUTTON Events: CONTROL_CLICK, MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL​
SimpleFrames - фреймы пользовательского интерфейса. Простые фреймы, состоящие из простых элементов: Texture, string, Layer.
  • SIMPLEFRAME (фрейм. можно использовать как контейнер или как пустышку). Events: CONTROL_CLICK​
  • SIMPLEBUTTON (кнопка). Events: CONTROL_CLICK​ <= только одно событие клика
  • SIMPLECHECKBOX (кнопка с флагом). Events: None​ (не уверен)
  • SIMPLESTATUSBAR (паолоса/шкала/строка состояния или прогресса). Events: None​ (не уверен)
фреймы с прокруткой. Slider point (ползунок) крутит, а Scrollbar полосу (bar). ни чем друг от друга не отличаются, у них функции одни и те же. point (ползунок) и bar (полоса) являются кнопкой, изображение этой кнопки можно перерисовать хоть в точку, хоть полосу
  • SLIDER (ползунок). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL, SLIDER_VALUE_CHANGED (CONTROL_CLICK with BlzFrameClick)​
  • SCROLLBAR (полоса прокрутки). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL, SLIDER_VALUE_CHANGED​
фреймы с областью. Это текстовый фрейм с окном. Внутри него можно прописывать текст, а также листать текст.
  • TEXTAREA (область отображения текста). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL
фреймы-контейнеры. Переместил в эту категорию, потому что они плохо изучены.
  • FRAME (фрейм. можно использовать как контейнер или пустышку) Events: None, (Blocks previous created Frames of Level 0)​
фреймы-модели
  • MODEL - модель. Чаще всего это модели со статичным изображением. Пример loadScreen, доска победы итд. У таких фреймов отсутствует возможность проигрывать анимации. (Only in the screen space taken, this has nothing to do with the visual part)​ Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL (CONTROL_CLICK with BlzFrameClick)
  • SPRITE - спрайт-модель. При создании модели проигрывает анимацию. Зависит от разных моделей и анимации, некоторые проигрывают сразу и исчезают. Другие после анимации остаются видимы в течении игры. Можно проиграть различные анимации. Также анимации можно зациклить, будет повторно проиграть анимацию. Однако, нельзя спрайту задавать время и скорость анимации, ускорять или замедлять шкалу. Все как указано в модели, так и проиграет анимацию. ссылка. Events: None​ (не изучено). Есть событие FRAMEEVENT_SPRITE_ANIM_UPDATE, но не пробовал ее применять.
  • STATUSBAR - модель. Влияет на шкалу полосы прогресса. Можно задавать прогресс statusBar, и анимация будет изменяться. Короче, можно таймером регулировать время анимации. Events: None​ (не изучено).
фреймы, которые пока плохо изучены
  • CONTROL (Control есть события реакции с мышью, и часто задают размеры. Когда наводят курсор) Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP
  • DIALOG. Events: DIALOG_CANCEL, DIALOG_ACCEPT
  • LISTBOX (область отображения box, чем то похоже на TextArea) Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL​
  • CHATDISPLAY (отображение чата. У этого типа есть свои fdf-функции. похож на TEXT) Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL (CONTROL_CLICK with BlzFrameClick)​
  • SLASHCHATBOX (похож на EDITBOX). Events: MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL,EDITBOX_TEXT_CHANGED, EDITBOX_ENTER (CONTROL_CLICK with BlzFrameClick)​

Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...