<< Chapter < Page Chapter >> Page >
  • Listen for ENTER_FRAME events
  • Listen for TIMER events fired by an object of the Timer class

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.)

It wouldn't be too difficult to write an ActionScript project todemonstrate this phenomenon by varying the event rate of a Timer object relative to the frame rate of the Flash Player, but I don't havetime to do that right now.

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.

Listen for ENTER_FRAME events

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."

Unfortunately, Braunstein also implies at several locations in his excellent book that the accuracy of the repetition rate for ENTER_FRAME events may leave a lot to be desired.

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with actionscript. OpenStax CNX. Jun 04, 2010 Download for free at http://cnx.org/content/col11202/1.19
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?

Ask