Infinito3010: My limited knowledge with regards to software that I can explain 8 and 9.
From what you wrote above I can say you have definitely more than limited knowledge on that subject :)
Infinito3010: RAD (Rapid application Development) is a term used in GUI development
applications. They usually exists a series of pre-developed controls,
such as a button, etc that you can add to a form. Each form has a
window handle, the button is then part of the form, which is the child
on that form. The user presses a button, to provoke a program
response.
Meters, are another control that is added to a form to perform some functionality. How smooth the meter is a a function of your computer hardware and browser.
OK, at first I wasn't expecting you to refer to the OOP and GUI programming - that was the reason of my misunderstanding.
I am not an expert on browsers architecture wrt plugins they allow to embed into html they display, but my understanding of how flash applications work is that they are completely independent from the browser and window manager internals when it comes to creating and operating user controls, aka widgets. This is why flash files look the same regardless of the OS and window manager used to display them.
If we were talking about GUI programming which uses controls provided by one the many existing GUI libraries then I would agree 100% with your statement.
Over five years ago I was playing a bit with flash applications under linux using swfc, and I could create simple buttons within a flash object like that:
.button menu1
.show menu as=hover
.show menu as=pressed
.show menuvoid as=idle
.show menuvoid as=shape
.on_press:
this.geturl('BLOCKED SCRIPTalert(\'You pressed the item 1\')');
.end
.end
Button is merely a area defined within flash object viewing area, which can have an action linked to the specified user event(s).
All Flash object needs is interaction with the window manager to receive events from the user (mouse and keyboard event), and draw its contents to the user.
Infinito3010: Thus, how well the browser interacts with the meter plays an important role.
I tend to disagree, it's interaction with the window manager, not the browser. Browser only provides area to display given flash object within existing window manager controls and provide means to access internet transport (and probably run additional JavaScript code ? Maybe doubtful since flash it has its own actionscript language).
Flash objects can be viewed without a browser using Adobe Flashplayer. Maybe networking will not work, but displaying will work ok.
Infinito3010: The higher the CPU load, more prone your meter will be to fluctuations.
Agreed, it is a general fact. It impacts the way flash player displays meter control, and the actionscript which handles user events.
Infinito3010: You can create a lock memory block for the meter which will become prioritize, however, this could have serious drawbacks on other background tasks.
I don't know whether granularity of memory lock is such small so as you could be able to lock it for such a small object as the meter class problably is. More beneficial would be lock on the methods and functions which are used by the meter class. Also, I believe that memory locking is rather accessible at the regular program level, I would not expect flash objects to have an access to such low level OS internals. AFAIK memory lock on windows means that selected part of memory will not be transferred to swap. Prioritization you mentioned is used for machine code which is being executed - wrt to flash objects that would mean entire flash plugin, with its libraries. Game code is an interpretted action script (that is why it can be run on windows, linux, mac os, etc.), thus it is a static data accessed by the flash engine.
Infinito3010: browser can remain idle at that point
On windows this is tricky, since on one hand you've got IE, which is a huge combo, which among others serves as a browser, but serves for a lot of other purposes as well. On the other hand you can have a 3rd party browser, e.g. Firefox, Iceweasel, Opera, Chrome. For IE it is hard to assume that you can force it to being in idle, unless you kill it ;) For the other browsers they will be idle, unless you have some other tabs open, or it is checking/downloading upgrades of itself or installed addons.
Infinito3010: It appears there is allot of asynchronous responses happening simultaneously which creates the cpu load in the first place.
I/O requests take the same amount of CPU resources whether or not they were initiated in a synchronous or asynchronous manner. The difference is on the level of the caller - it will be suspended waiting for completion, or not. The amount od CPU resources (ticks required to execute certain amount of machine code) is the same, but may be differenty spread on the time scale.
Infinito3010: In other words, how fast this control responds plays an important role.
First and foremost this is responsibility of the flash plugin (I have always voted that flash is a poor choice for purposes which demand exact time constraints, also it consumes huge amount of CPU power, even when flash object is static). Then we can think of an overload caused by the window manager drawing flash contents and bringing user events to the flash object.
Infinito3010: if the control doesn't respond fast enough you will see stuttering of the meter.
Right on Infnito.
---------------------
This looks like an interesting reading:
Examining the event-handling process
Display list programming
Flash object architecture