Datei eintragen#

UI-Dateien in ui.xml, Die gemeinsame Definition vor den Modulen, die sie verwenden. Deklarieren Sie Abhängigkeiten von Drittanbietern und überprüfen Sie ihre Versionen. Welt und Menüs können nicht bereit sein, wenn die Datei geladen wird; Registrierung von Rückrufen und Lesen eines vorhandenen Schiffes sind verschiedene Stufen.

XML
<addon name="wiki_example">
  <environment type="menus">
    <file name="ui/wiki_example.lua" />
  </environment>
</addon>

Ein benutzerdefiniertes Fenster#

Verwendung des Hilfe-Fenster-Leitfaden für Text und Tasten oder Einstellungen API Eine neue Schnittstelle kann allein stehen; eine Erweiterung einer bestehenden Aktion sollte von der Standard-Menüaufruf.

Nicht blockieren#

Die Handler sollten schnell zurückkehren. Warten in einer Schleife friert Benutzeroberfläche. Verwenden Sie ein Ereignis und separates Ergebnis für Weltveränderungen anstatt die Operation auf jedem Tisch aktualisieren wiederholen.

Lebenszyklus#

Installieren Sie Handler einmal pro Kontext. Lösen Sie Referenzen nach dem Laden oder Menürekonstruktion wieder und vermeiden Sie die Anhäufung von Wrappern. Das Beispiel weist Rückrufe von einer veralteten Adapterinstanz zurück. Diese Überprüfung entwertet den Handler nicht; freie Frames und transienten Zustand getrennt.

LUA
WikiPanel = {}
local instance = WikiPanel
RegisterEvent("Wiki.Example", function(_, payload)
    if WikiPanel ~= instance then return end
    -- Обработка относится к актуальному экземпляру.
end)

Weiterlesen#

Lua ↔ MD, benutzerdefinierte Fenster und Standard-UI-Erweiterungen.