Greetings All,
  I have been working a lot with images and
animations.  I have noticed quite a few problems, but
the following was really puzzling me.  The display
time (animation rate) differences between browsers. 
In researching this I discoverd (and verified) the
following:
setTimeout and setInterval have a minimum floor and
behave differently in different operating
systems/browsers.

Operating systems and minimum time slice:
win9x and winME 55ms minimum
NT and win2k  10ms minimum

Then, to add to the problem, the different browsers
behave differently. 
 
setTimeout breaks in all browsers at multiples of the
system minimum.  ie if you are using 
win98, settings of
1-55 = 55ms approx.
56-110 = 110ms approx.
111-165 = 165ms approx.
166-220 = 220ms approx.
and so on by increments of the minimum timeslice (55
here)

setInterval behaves differently based on the browser.
all browsers at less than the system minimum (using
win9x 55ms for examples)
0-55 = 55ms approx.
IE again follows the increment of system minimum for
all values as in the setTimeout example
ns4 and ns6 above the system minimum will fairly
closely fall on the desired setting
66ms = 66ms approx. and so on.

It is possible to use a multithread technique to
reduce the win9x timing to around 37ms (still testing
this).

What does it mean?  If you are using setInterval or
setTimeout in your code or using any of the animation
widgets, setting a value below 55 ms is pointless for
win9x (majority of users I believe).

I have seen a lot of code written in DynAPI with
setTimeout values below 55, this may affect how the
code operates under NT as opposed to win9x.  A setting
of 10 that defaults to 55ms may work well under win9x,
but when run under NT or win2K it may be too fast.

Animation in DynAPI
  The majority of the animation widgets use thread as
the basis for the timing.  Thread uses setInterval
which behaves differently under ns vs ie (see above)
when above the system minimum (55ms).  This results in
major differences between the animation sequences if a
setting above 55 is used.  For example: a setting of
75 will run at 75 under NS but will default to 110
under IE.  This number is the setting you apply to
.sleep() when using the widgets.  Just for general
information, the default setting for .sleep() in
thread is 50ms.

I have some test pages that I got from other sources
that I have been using to run tests to verify this. 
If anyone is interested, I will post them.  I would
like to hear from anyone interested in running the
same tests on mac and under different browsers
(opera?).  I am also working on a beta of thread that
uses multithreading techniques for individual
animations, the goal, a smoother animation.  Not sure
this will work though.

Another thought is that we change thread to use a
series of numbers instead of the timing value itself. 
Then a new routine in thread could check the operating
system/browser and assign a preset number based on
this lookup.  Unfortunately it would have to default
to the values of the worst system, IEunder win9x
(increments of 55).  This would impact the playback
under NN/win9x, but would give us a consistant
animation across browsers.  Isn't this what DynAPI is
all about?
Comments?

one final interesting note, the tests under NN6 took
twice as long to complete but gave the same timed
results.  I speculate that NN6 is somehow evaluating
the code once before running it?  Anybody have any
ideas or facts on this?  This really impacts any
animation done in DynAPI when displayed under NN6
(yes, I know it is not supported yet).

Cheers,
Dave C. "You Changed What?!?"

__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/

_______________________________________________
Dynapi-Help mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dynapi-help

Reply via email to