Создание UI потока
Схема работы UI виджета и клиента ArcheAge
ArcheAge клиент
Вызов API и получения результата
> 1: Вызов API "Widget:CreateChildWidgetByType(UOT_BASE_BUTTO N, id, index, insertTable)" =>
в результате получаем дочерный элемент виджета(родителя), кнопку - UOT_BASE_BUTTON
> 2: Вызов API "X2Unit:UnitName("target")" => в результате получаем имя\названия юнита
Вызов GAME EVENT в обработчик событий
> Пример: "Открытие\закрытие инвентаря", "Изменения содержимого инвентаря", ...
Вызов WIDGET EVENT в обработчик событий
> Пример: "Была нажата правая кнопка мыши в виджете", "Указатель мыши вышел за пределы виджета", ...
UI дополнения
Вызов API предоставленных клиентом
Widget에 등록되어 있는 API들을 호출하여 Widget/Drawable 등을 생성하고, 이미지를 덧붙이는 등의 layout과 관련된 처리를 한다.
용도별로 제공되는 API 집합들을 호출하여 UI 처리에 필요한 정보들을 얻어와서 이를 처리한다.
Обработчик событий
Пример вызова пользовательской функции, когда цель юнита изменилась
function TestFunction(w, stringId, targetType)
-- do something
end
BagUI:SetEventHandler("TARGET_CHANGED", TestFunction)
Пример вызова функции при нажатии на кнопку
function buttonWidget:OnClick(arg)
-- do something
end
buttonWidget:SetHandler("OnClick", buttonWidget.OnClick)