Flash Optimization – Activate & Deactivate Events

Flash optimization is becoming increasing important & with alternative development tools that developers can use. We all have a responsibility to build Flash elements that are efficient as much as they are groundbreaking. As someone who feels responsible for the future of this great application, I am creating a Flash Optimization series that will help educate the Flash development community on how to keep their Flash elements as lean as possible.

Flash Player 9 introduced two events (Event.ACTIVATE and Event.DEACTIVATE) that can assist you in fine-tuning your application so that it uses the fewest CPU cycles possible. These events allow you to detect when Flash Player gains or loses focus. As a result, code can be optimized to react to context changes.

Note: Use Event.ACTIVATE and Event.DEACTIVATE events to detect background inactivity and optimize your
application appropriately.

The following code listens to both events and dynamically changes the frame rate to zero when the application loses its focus. For example, the animation can lose focus when the user switches to another tab or puts the application into the background:


var originalFrameRate:uint = stage.frameRate;
var standbyFrameRate:uint = 0;

stage.addEventListener ( Event.ACTIVATE, onActivate );
stage.addEventListener ( Event.ACTIVATE, onDeactivate );

function onActivate ( e:Event ):void
{
// restore original frame rate
stage.frameRate = originalFrameRate;
}

function onDeactivate ( e:Event ):void
{
// set frame rate to 0
stage.frameRate = standbyFrameRate;
}

When the application gains focus again, the frame rate is reset to its original value. Instead of changing the frame rate dynamically, you could also consider making other optimizations, such as freezing and unfreezing objects. The activate and deactivate events allow you to implement a similar mechanism to the “Pause and Resume” feature sometimes found on mobile devices and Net books.

This entry was posted on Thursday, April 14th, 2011 at 5:50 am and is filed under ActionScript, Flash. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

You might also like

Flash Optimization – Display Objects Flash optimization is becoming increasing important & with alternative development tools that developers can...
Flash Optimization – Freezing And Unfreezing Objects Flash optimization is becoming increasing important & with alternative development tools that developers...
Flash Optimization – Object Pooling Flash optimization is becoming increasing important & with alternative development tools that developers...
Flash Optimization – Reusing Objects Flash optimization is becoming increasing important & with alternative development tools that developers...