फ़ाइलों को पंजीकृत करें#
UI फ़ाइलों को घोषित करें ui.xml, साझा परिभाषाओं को उन मॉड्यूलों से पहले रखना जो उनका उपयोग करते हैं। तृतीय पक्ष निर्भरता की घोषणा करें और उनके संस्करणों की पुष्टि करें। फ़ाइल लोड होने पर दुनिया और मेनू तैयार नहीं हो सकते हैं; कॉलबैक रजिस्टर करना और किसी मौजूदा जहाज को पढ़ना अलग-अलग चरण हैं।
<addon name="wiki_example">
<environment type="menus">
<file name="ui/wiki_example.lua" />
</environment>
</addon>एक कस्टम विंडो#
उपयोग करें सहायक खिड़की गाइड पाठ और बटन के लिए, या सेटिंग्स एपीआई सामान्य विकल्पों के लिए। एक नया इंटरफ़ेस अकेले खड़ा हो सकता है; एक मौजूदा कार्रवाई का विस्तार मानक मेनू कॉलबैक.
प्रतिपादन को अवरुद्ध न करें#
संभाल करने वालों को जल्दी से वापस आना चाहिए। लूप में इंतजार करने से UI ठंढ जाता है। प्रत्येक तालिका अपडेट पर ऑपरेशन को दोहराने के बजाय दुनिया परिवर्तन के लिए एक घटना और एक अलग परिणाम का उपयोग करें।
जीवन चक्र#
संदर्भ के अनुसार एक बार हैंडलर स्थापित करें। लोड होने या मेनू पुनर्निर्माण के बाद संदर्भों को फिर से हल करें, और लपेटों के जमा होने से बचें। उदाहरण एक अप्रचलित एडाप्टर उदाहरण से कॉलबैक को अस्वीकार करता है। उस चेक में हैंडलर को अनप्लग नहीं किया जाता है; स्वतंत्र फ्रेम और पारगमन राज्य अलग से।
WikiPanel = {}
local instance = WikiPanel
RegisterEvent("Wiki.Example", function(_, payload)
if WikiPanel ~= instance then return end
-- Обработка относится к актуальному экземпляру.
end)