Originally Posted by venoabyss
... code a scroll bar and buttons to handle all the guild member data. using button's id's and the scroll bar to "move" up and down the list (rewriting the buttons text and id every time you move the vertical scroll up or down) ... is that going to eat the heck out of the memory swapping all that info every time you scroll the guild frame?
|
No. This is the same method that many frames in the default UI use, including the friends frame, ignore frame, and guild roster frame. There are a set number of buttons. When the scroll bar is moved, the text, icons, and/or properties on each button are changed. This is called a "faux scroll frame" and the default UI provides a number of templates related to it.
Since this is not actually creating new objects, it will actually use
less memory (eg. only 10 buttons are visible at once, so you only create 10 button objects, instead of creating 100 button objects but having 90 of them being hidden). I'm not sure about the difference in CPU usage between calling, eg. :SetText() on each of 10 buttons, and moving and/or showing hiding each of 100 buttons, but it can't be significant either way.
This method also has the advantage of having many more examples to work from, especially in the default UI.
Originally Posted by venoabyss
... adding an ace lib into my addon
|
It's not an "Ace library". It's just a library. Back in 2006, yes, there were a lot of "Ace librarires" that required the Ace2 framework. Today, there is not even an Ace framework. There is an Ace3 "family", but each library (eg. AceAddon-3.0, AceDB-3.0, AceEvent-3.0) is separate. Each can be used with or without any others, have no dependencies on each other, and have little to no interaction between each other.
Aside from a few specific libraries whose purpose is to extend one of the Ace3 libraries (such as AceGUI-SharedMediaWidgets, which adds SharedMedia-specific dropdown configuration widgets to AceGUI), there are no "Ace libraries", in the sense of being libraries that depend on some/all Ace libraries.
Modern WoW libraries are framework-agnostic; they neither know nor care which other libraries you're using. Most of them are built on LibStub, which is a very tiny, very generic stub for embedded library versioning (eg. handling cases where Addon A ships with Lib X v2.4, Addon B ships with Lib X v2.1, and Addon C ships with Lib X v2.7).
Anyway, if you need help using a library, your best bets are, in this order, to (a) read the documentation, or (b) read the code in addons that use the library, or (c) ask specific questions about things you don't understand or are having trouble with.