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

Содержание:
Дальше осталось не так много типов фреймов из всех ранее изученных.

FRAME (тип фрейм)

В варике существует тип фрейма - FRAME. Всякие панели меню внутри таких фреймах лежат, если посмотреть. Обычно ничего такого интересного не дают.
FRAME не может иметь FrameEvents для управления мышью экранного пространства. Можно предоставить и использовать всплывающую подсказку FRAME a (s). В предыдущем уроке с подсказками мы видели как можно использовать FRAME.
Чаще всего эти FRAME можно использовать в качестве невидимого родителя. Это поможет создавать контейнеры кнопок, панелей.

DIALOG

Dialog - фрейм окна с кнопками. Чаще всего встречается в меню игры. Можно соорудить что-то похожее в игре. Могут очень сильно отличаться от триггерных диалогов, где кнопки в столбик расположены. В fdf-files эти диалоги создаются где-то внутри игры, а не в самой игре. В игре этот диалог вызывается в главном меню, AllianceDialog и пр
У этого типа есть особая функция Control, без которого ничего не запускается в DIALOG
DialogBackdrop
DialogBackdrop frame-backdrop,
Пример:
DialogBackdrop "AllianceBackdrop",
Frame "BACKDROP" "AllianceBackdrop" {
  DecorateFileNames,
  BackdropTileBackground,
  BackdropBackground  "EscMenuBackground",
  BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
  BackdropCornerSize  0.048,
  BackdropBackgroundSize  0.128,
  BackdropBackgroundInsets 0.01 0.01 0.01 0.01,
   BackdropEdgeFile  "EscMenuBorder",
   BackdropBlendAll,
}
Фоновое изображение (backdrop) диалогового окна.
Короче, backdrop диалоговому окну можно вызвать только этой функции. Вызов другими функциями Control (пример ControlBackdrop) приводит к вылету игры
Обычно у всех изображении есть второе disabled изображение. Но у диалога его нет, и во время паузы изображение диалога не меняет изображение и ничего с ним не происходит..
У этого типа фрейма есть только два события - DIALOG_CANCEL и, DIALOG_ACCEPT​.
у DIALOG очень много шаблонов вот отсюда. Пример ScriptDialog. Вы можете создать MyDialog с шаблоном “ScriptDialog”, а потом создавать кнопки, используя шаблон “ScriptDialogButton”. и не забыть назвать заголовок через нативку BlzFrameSetText(MyDialog, text) к MyDialog “ScriptDialogText”. Это стандартный триггерный диалог с кнопками.
Есть некоторые шаблоны, которые близзард используют для конкретных случаев, на диалог прикрепляют разные кнопки, тексты, скроллбары и пр.Их конечно нельзя использовать по-нормальному, можно но сложно. Проще свой написать fdf-file или триггерно
LISTBOX
ListBox - это окно с Scrollbar. Состоит из backdrop и Scrollbar. Пока что бесполезный тип, тк невозможно использовать это в игре.
Имеет ли в варкрафте LISTBOX такое же представление, как описано в википендии, я не знаю. Поскольку я не видел такого типа в fdf-file нигде. Че то оч похоже на TextArea. В варкрафте я уже встречался с некоторыми типами, пример BUTTON/GLUEBUTTON. Возможна че-та похожее этот тип и использует.
У этого фрейма такие события:
MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_WHEEL​
Вывод: Применение этому ListBox сложно найти, можно создать что-то конкретное из имеющихся фреймов. Просто думал, это должно быть как TextArea. Я не тестил, поэтому не знаю.

SPRITE

кратко: информации мало, поэтому ничего не могу сказать. Даже в fdf-files мало данных.
Изменение родителя спрайта во время игры может привести к ускорению отображаемой анимации.
эта анимированная модель. Часто ее использую.
---@param frame framehandle
---@param primaryProp integer
---@param flags integer
---@return nothing
function BlzFrameSetSpriteAnimate(frame, primaryProp, flags) end	-- (native)
BackgroundArt (указывают в fdf модель)
BackgroundArt FilePath,
Пример:
BackgroundArt "UI\Glues\ScoreScreen\ScoreScreen-TopBar\ScoreScreen-TopBar.mdl"
LayerStyle
LayerStyle "NOSHADING",
используется с комбинацией с MODEL
Вы можете создать какой-нибудь анимированный фрейм, пример:
Frame "SPRITE" "MySprite" {
//для перемещения фрейма для framepoints необходимо указать размеры. Размеры не влияют на размеры модели.
    Width 0.362,
    Height 0.037,

    BackgroundArt "UI\Minimap\Minimap-Waypoint.mdl",
}
Эта модель подсвечивает на мини-карте точки. Короче, очередь приказов при Shift. Можно отобразить очередь приказов.
Точно также можно попробовать анимировать полосы.

CONTROL

В варике существует тип Control. В большинстве случаев его реальное применение бесполезно. Я даже в fdf-file смотрел. Применяется как ячейка/слот. Но я увидел, что Control фиксирует вход внутрь курсора мыши/выход мыши из курсора событиями мыши, и клик мыши. MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP

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