On 2/20/12 11:40 AM, "Michael A. Labriola" <labri...@digitalprimates.net>
wrote:
>
> I always thought it would be interesting to stream the first two frames from a
> server. Then keep alive the connection, use some connection to a server to
> indicate which classes were needed next and just stream additional frames each
> time we need a group of definitions. Not saying we need to adapt everything to
> do that, just always wanted to try.
>
I'm not sure I understand the plan. What would you use for the SWF header
total bytes? Would it really be ok to go to the server and wait for the
response when you need a class?
It is possible already to pack modules onto extra frames of the SWF. It is
an interesting mechanism in that it allows you to pull down classes while
the user is busy doing something else without having to make separate module
fetches. You might run into fault scenarios where the bytes for some class
still isn't downloaded yet, but for wizards where you have some
predictability as to what classes are needed when, it could be useful. I
don't know of anyone who has really bothered to leverage this feature
though.
I did a prototype where I placed frame-rate as the number one priority. I
chopped UIComponent into a bunch of smaller chunks and packed some of those
chunks on later frames. Then you don't need a preloader that is written in
non-framework code. There is a basic "kernel" that can display a label and
textinput that downloads in about 1 sec, then you can bring in other
components in later frames as the features it needs become available. I
added other tricks like validating invisible components at a lower priority
so running effects get validated right away and a whole bunch of new
components get validated over many more frames but don't screw up the
transition. It is pretty interesting, but requires strategizing how you
design the initial states of the application.
--
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui