<< Chapter < Page | Chapter >> Page > |
Not independent approaches
Note, however, that these two approaches are not independent of one another. It is easy to write code that uses the real-time clock to show that simplychanging the frame rate will cause the TIMER event rate to error from its specified value.
Also, unless the method named updateAfterEvent is called in the TIMER event handler, it does very little good to use a Timer object with a fast event rate in an attempt to produce smooth animations if the frame rate is slower than the Timer event rate. Without a call to that method in the event handler, changesmade to the visual state of the images in accordance with the TIMER event rate will only appear on the screen at the slower frame rate.
Wheels turning backwards
When I was a child, I often went to the movie theatre on Saturday afternoon to watch grade-B western movies featuring stars like Hopalong Cassidy, RoyRogers, Red Ryder, and others.
There was almost always a chase scene in which the bandits were chasing a stage coach. As a child, I could never figure out why it often looked like the wheels (with spokes) on the stage coach were turning backwards.
An artifact of sampling theory
Now that I understand sampling theory, I also understand what caused the wheels to turn backwards when the stage coach was moving forward. However, anexplanation of the phenomenon is beyond the scope of this lesson. (That may make a good topic for a future lesson.)
An interaction with the frame rate
Suffice it at this point to say that the phenomenon results from an interaction between the frame rate of the movie and the speed of motion of thespokes on the wheel. (Click here for a demonstration of the phenomenon.)
Other dependencies
As you will see later, there are other dependencies between the Timer event rate and the frame rate that aren't so easy to explain.
Process an event for each new display frame
According to Braunstein (see Resources ), "All display objects broadcast Event.ENTER_FRAME events before every frame is drawn, making them ideal timing beacons for animation."
We can define and register a listener object that will cause code to be executed each time such an event is fired. Thus, we can use the sequence of ENTER_FRAME events as a time base with which to control the progress of our ActionScript programs.
A simple AS3 project
Listing 16 provides the source code for the Main class in a very simple AS3 project (not a Flex project) named TimeBase01 that illustrates the processing of ENTER_FRAME events for the purpose of measuring the average elapsed time between such events.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?