m
Move page script moved page API and scripting quirks to WoW:API and scripting quirks without leaving a redirect
No edit summary |
m (Move page script moved page API and scripting quirks to WoW:API and scripting quirks without leaving a redirect) |
||
| (15 intermediate revisions by 12 users not shown) | |||
| Line 1: | Line 1: | ||
{{cleanup|Mostly out of date and misguided; merge into relevant articles and delete}} | |||
== World of Warcraft Scripting Quirks == | == World of Warcraft Scripting Quirks == | ||
* [[Macros]] | * [[Macros]] | ||
| Line 13: | Line 15: | ||
** OnUpdate handlers are only called when the frame is visible. | ** OnUpdate handlers are only called when the frame is visible. | ||
** OnUpdate handles are called ''every'' frame. Use with care. | ** OnUpdate handles are called ''every'' frame. Use with care. | ||
** When | ** When nesting frames, you can access the parent frame name in XML names with $parent, this is a textual substitution and cannot be used in Lua. The Lua equivalent to $parent is the GetParent() method of the frame (e.g. getglobal(Frame:GetParent():GetName().."Button") is the same as $parentButton). | ||
** All [[Frames]] have a GetID() function which will obtain the ID specified in the XML. | ** All [[Frames]] have a GetID() function which will obtain the ID specified in the XML. ID's must be positive integers enclosed in quotes: ie. id="1" or id="20" | ||
** If you don't specify parent="UIParent" in your top-level frames, your frames won't be scaled according to the currently active UI scale. This can lead to some hair-pulling as you try to figure out why your fonts are so huge. (But, in some cases, not having that scaling might be desirable.) | ** If you don't specify parent="UIParent" in your top-level frames, your frames won't be scaled according to the currently active UI scale. This can lead to some hair-pulling as you try to figure out why your fonts are so huge. (But, in some cases, not having that scaling might be desirable.) | ||
** If you get no error output, but your addon is simply not being loaded, make sure you don't have a syntax error in your .xml file. A simple way to ensure that your xml is well-formed is to open it in Firefox; it will point out any XML structure errors to you. You can also check the contents of your Logs directory for errors. | ** If you get no error output, but your addon is simply not being loaded, make sure you don't have a syntax error in your .xml file. A simple way to ensure that your xml is well-formed is to open it in Firefox; it will point out any XML structure errors to you. You can also check the contents of your Logs directory for errors. | ||
* | * Output to the outside world | ||
** The only file output allowed is when the UI engine saves variables before it exits or reloads. Addons use the ## SavedVariables: header to indicate which data they wish to save | ** The only file output allowed is when the UI engine saves variables before it exits or reloads. Addons use the "<tt>## [[SavedVariables]]:</tt>" header to indicate which data they wish to save. | ||
* [[World of Warcraft API|Functions]] | * [[World of Warcraft API|Functions]] | ||
| Line 31: | Line 32: | ||
**** "|r" causes the disconnect, | **** "|r" causes the disconnect, | ||
**** "|c" doesn't have the same problem, but will cause the text after it not to show. | **** "|c" doesn't have the same problem, but will cause the text after it not to show. | ||
* Variables | |||
** If you declare a local variable inside an code block (such as an IF block), it is only available inside that code block. | |||
** See [[Lua Scope]] for a complete description of the implications of Lua's variable scoping. | |||
[[Category:Interface customization]] | |||