Welcome!

Adobe Flex Authors: Matthew Lobas, PR.com Newswire, Shelly Palmer, Kevin Benedict

Related Topics: Adobe Flex

Adobe Flex: Article

Cover Story: How to Increase the Frame Rates of Your Flash Movies

How's Your Need For Speed?

Flash in its essence began as a tool for creating vector animations on the web. The Flash Player was designed specifically as a lightweight animation viewer to display those moving vector objects which are in their simplest form, mathematical equations that describe complex shapes made up of points, lines, curves and fills. However, nowadays developers and designers are using Flash to do a lot more than just animation, today we see Flash being used for everything from interactive banner ads to games and large applications with complex user interfaces. We are now pushing Flash to its limits and our frame rates are starting to suffer as we continue to develop content that is more application centric.

The Flash Player has had obvious performance limitations for some time now:; the vector renderer inside the player generally coughs and splutters when it attempts to play Flash Movies that contain large amounts of objects on the stage. This is because the player is not optimized to deal with large amounts of static content, by design, each frame all the vector objects on the stage have to be updated and redrawn regardless of whether they have changed, which is an intensive and unnecessary process.

In this release of the Flash Player, Macromedia have addressed these visual performance issues by making various improvements and optimizations to the renderer and adding various new features which developers can use to take advantage of these significant changes.

This article will show you how to effectively utilize these new performance related features to increase the frame rates of your Flash Movies.

Bitmap Caching
One of the most significant additions to the player in this release has to be the new Bitmap Caching capabilities. This feature gives developers that are experiencing poor frame rates the power to greatly increase the speed at which large amounts of objects are updated and drawn onto the stage by the renderer.

The renderer is a very important part of the Flash Player; it is responsible for everything that you see when you view a Flash Movie. It draws all the vector and bitmap data onto the stage. Every frame, the renderer has to update the stage and the various objects it contains to reflect any changes since the last frame using ActionScript and/or animation. This process can become quite intensive when a large amount of updating has to be done on any given frame. Using this feature gives the developer some control over the amount of work that the renderer has to perform each frame. The less work you give the renderer, the faster and smoother your Flash Movie will run.

So How Does It Work?
When you turn on Bitmap Caching for any given movie clip, the player converts the contents of the movie clip into a bitmap which it generates and then stores in memory alongside the original vector data equivalent. The renderer then displays this bitmap in place of the vector data by copying the image from memory onto the stage. This process essentially makes the renderer's life easier, because it doesn't have to update the movie clip each frame, instead it only has to draw the bitmap it generated once and from then on it simply copies the bitmap from memory onto the stage, unless of course you change the movie clip or its contents, which will regenerate the bitmap. There will be little or no visual difference when a movie clip has bitmap caching turned on. You may notice a very slight difference because the vector data is snapped to the nearest whole pixel when the bitmap is generated. Bitmap Caching also works perfectly well with nested movie clips (movie clips inside movie clips). To put it in simple terms, by turning on Bitmap Caching for a movie clip, you are essentially telling the Flash Player: "Hey Renderer, I'll make your life a little easier. Freeze this movie clip and display it as a bitmap instead because this movie clip or its contents are not going to change very often, if at all. They are static."

Turning Bitmap Caching On and Off
Bitmap Caching comes in the form of an additional movie clip property that can be switched on or off at both Authortime using the Property Inspector and at runtime using ActionScript, on a per movie clip basis.

Using the Authoring Environment
You can turn Bitmap Caching on or off for any movie clip in the authoring environment using the Property Inspector. Bitmap Caching is disabled for all movie clips by default.

To turn Bitmap Caching on select the desired movie clip instance on the stage by clicking on it. Then open the Property Inspector from the Window menu. (Window > Properties > Properties) or use the Keyboard Shortcut CTRL + F3

In the bottom right hand corner of the Properties Inspector under the Blend field, you will see an option called Use Runtime Bitmap Caching. Click this checkbox to turn Bitmap Caching on for the selected movie clip. Bitmap Caching is turned off by default for all movie clips.

Using ActionScript
Bitmap Caching can also be turned on and off at runtime using actionscript. Every movie clip object now has a new actionscript property called cacheAsBitmap. To turn Bitmap Caching ON for a movie clip with actionscript you simply need to set the value of its cacheAsBitmap property to true like so: someMovieClip.cacheAsBitmap=true; //Turn Bitmap Caching ON Similarly, to turn Bitmap Caching OFF for a movie clip using actionscript you simple need to set the value of its cacheAsBitmap property to false as follows: someMovieClip.cacheAsBitmap=false; //Turn Bitmap Caching OFF You can also determine if a movie clip has Bitmap Caching turned on, by retrieving the value of the cacheAsBitmap property: isCached=someMovieClip.cacheAsBitmap;

When Should I Use Bitmap Caching?
If used correctly, Bitmap Caching can dramatically reduce the amount of updating instructions that the renderer has to process every frame and thus your movies should in practice run a lot quicker and smoother. However in certain circumstances Bitmap Caching could have a detrimental effect on the performance of your flash movie, therefore you should choose the movie clips that you cache wisely.

Bitmap Caching works best for movie clips whose visual appearance doesn't change often or at all. That is because when a cached movie clip or its contents change, the area or region of vector data that changed is regenerated and then updated into the bitmap that is held in memory and the renderer displays the new bitmap. Bitmap Caching also works well for movie clips that contain complex vector data (i.e. shapes with lots of curves or gradient fills) as it is quicker for the renderer to copy a bitmap from memory onto the stage than draw all those vectors to the stage.

Every time you rotate, scale or change the alpha of a cached movie clip, the whole bitmap has to be regenerated. So, turning on bitmap caching for a movie clip that is constantly rotating, changing in size or contains an animation doesn't make much sense because every frame the renderer has to update the bitmap to reflect the new appearance of the movie clip aswell as redraw it to the stage, which is added overhead.

The whole idea of this feature is to reduce the amount of updates that the renderer has to perform each frame, turning it on in such situations doesn't reduce the number of updates that the renderer has to perform. On the other hand it would be very beneficial for you to turn on Bitmap Caching for all movie clips that are either static or move around, but don't change visually. It is perfectly fine to move a cached movie clip around the stage, either with ActionScript or with timeline animation because moving it around won't change its visual appearance and therefore the cached bitmap doesn't have to be updated; the renderer will merely draw the bitmap at its new position.

Valid Usecase Scenario
Consider the following scenario: You have a large application that contains multiple Window components; each Window component contains numerous other Components. Each Window component is draggable. When the user drags one of the Windows around the application, he notices a slow down and the Window has to catch up to the mouse position, which causes jerky movement.

To fix this problem, the developer turns on Bitmap Caching for each Window component instance. Now the player only has to update the internal bitmap representation of each Window component when the visual appearance of one of the UI Components inside it changes. The rest of the time, including when the Window component is being dragged around, it simply needs to move the bitmaps around the stage, as opposed to constantly updating the stage from the vector data in each movie clip. The result is a much smoother dragging experience for the user.

More Stories By Guy Watson

Guy Watson (aka FlashGuru) has been a well-recognized figure in the Flash community for around four years, supporting the community with tutorials and source files, moderating the large Flash community forums, and running his own Flash resource Web site - FlashGuru's MX 101. Guy was one of the two developers that created the award-winning zoom interface for Relevare and now works for Endemol UK, the creative force behind reality television, producing programs such as Big Brother and The Salon. Guy now spends most of his time developing Flash games and applications for high-profile clients such as Channel 5 Television, Ladbrookes, and UK Style.

Comments (24) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Conference Call 07/07/06 04:45:58 PM EDT

Trackback Added: Conference Call; Conference Call

Drug Rehab 07/07/06 09:19:22 AM EDT

Trackback Added: Drug Rehab; Drug Rehab

Payday Loan 07/05/06 10:59:50 AM EDT

Trackback Added: Payday Loan; Payday Loan

Dental Insurance 07/05/06 10:33:31 AM EDT

Trackback Added: Dental Insurance; Dental Insurance

Data Recovery 07/04/06 08:38:25 AM EDT

Trackback Added: Data Recovery; Data Recovery

Printers 07/02/06 12:24:47 PM EDT

Trackback Added: Printers; Printers

1031 Exchange 07/01/06 02:08:26 PM EDT

Trackback Added: 1031 Exchange; 1031 Exchange

First Aid Kits 07/01/06 03:49:12 AM EDT

Trackback Added: First Aid Kits; First Aid Kits

Car Accident Lawyer 06/30/06 02:25:19 PM EDT

Trackback Added: Car Accident Lawyer; Car Accident Lawyer

Acne 06/25/06 02:22:46 PM EDT

Trackback Added: Acne; Acne

Equity Line Of Credit 06/25/06 07:38:23 AM EDT

Trackback Added: Equity Line Of Credit; Equity Line Of Credit

Forklift 06/25/06 07:22:27 AM EDT

Trackback Added: Forklift; Forklift

Term Life Insurance 06/24/06 04:21:24 AM EDT

Trackback Added: Term Life Insurance; Term Life Insurance

Eye Surgery 06/23/06 06:58:00 PM EDT

Trackback Added: Eye Surgery; Eye Surgery

Relocation 06/23/06 06:35:57 PM EDT

Trackback Added: Relocation; Relocation

Payday Loan 06/23/06 06:33:04 PM EDT

Trackback Added: Payday Loan; Payday Loan

Payday Loan 06/23/06 03:15:54 PM EDT

Trackback Added: Payday Loan; Payday Loan

Relocation 06/23/06 03:10:34 PM EDT

Trackback Added: Relocation; Relocation

Distance Education 06/23/06 01:29:59 AM EDT

Trackback Added: Distance Education; Distance Education

Relocation 06/22/06 09:36:41 PM EDT

Trackback Added: Relocation; Relocation

Vasectomy 06/22/06 12:31:50 PM EDT

Trackback Added: Vasectomy; Vasectomy

Aeon 05/27/06 03:21:41 AM EDT

This tutorial is full of syntax errors.
Functions aren't terminated properly, statements aren't properly closed with semi-colons ;.
Needs amendment.

eddyC 02/19/06 07:05:15 PM EST

Hi "noname", I was searching for a solution to this problem and found out you've had the same tysRect-problem... Have you solved it by now? :-) TIA!

noname 01/05/06 06:00:11 PM EST

hey, i just took a shot at the example in "Cover Story: How to Increase the Frame Rates of Your Flash Movies": "Scrolling Large Amounts of Text".

Unless i'm doing something incredibly wrong, it's not close to complete the way you have it in the article. Anyway, i think i've narrowed it down and just need the value for one last property: "tysRect", in the scroll() function.

what is this supposed to be set to??? is there a working fla anywhere?

thanks!

@ThingsExpo Stories
The BPM world is going through some evolution or changes where traditional business process management solutions really have nowhere to go in terms of development of the road map. In this demo at 15th Cloud Expo, Kyle Hansen, Director of Professional Services at AgilePoint, shows AgilePoint’s unique approach to dealing with this market circumstance by developing a rapid application composition or development framework.
“In the past year we've seen a lot of stabilization of WebRTC. You can now use it in production with a far greater degree of certainty. A lot of the real developments in the past year have been in things like the data channel, which will enable a whole new type of application," explained Peter Dunkley, Technical Director at Acision, in this SYS-CON.tv interview at @ThingsExpo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
The major cloud platforms defy a simple, side-by-side analysis. Each of the major IaaS public-cloud platforms offers their own unique strengths and functionality. Options for on-site private cloud are diverse as well, and must be designed and deployed while taking existing legacy architecture and infrastructure into account. Then the reality is that most enterprises are embarking on a hybrid cloud strategy and programs. In this Power Panel at 15th Cloud Expo (http://www.CloudComputingExpo.com), moderated by Ashar Baig, Research Director, Cloud, at Gigaom Research, Nate Gordon, Director of T...
"BSQUARE is in the business of selling software solutions for smart connected devices. It's obvious that IoT has moved from being a technology to being a fundamental part of business, and in the last 18 months people have said let's figure out how to do it and let's put some focus on it, " explained Dave Wagstaff, VP & Chief Architect, at BSQUARE Corporation, in this SYS-CON.tv interview at @ThingsExpo, held Nov 4-6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that Windstream, a leading provider of advanced network and cloud communications, has been named “Silver Sponsor” of SYS-CON's 16th International Cloud Expo®, which will take place on June 9–11, 2015, at the Javits Center in New York, NY. Windstream (Nasdaq: WIN), a FORTUNE 500 and S&P 500 company, is a leading provider of advanced network communications, including cloud computing and managed services, to businesses nationwide. The company also offers broadband, phone and digital TV services to consumers primarily in rural areas.
The Internet of Things is not new. Historically, smart businesses have used its basic concept of leveraging data to drive better decision making and have capitalized on those insights to realize additional revenue opportunities. So, what has changed to make the Internet of Things one of the hottest topics in tech? In his session at @ThingsExpo, Chris Gray, Director, Embedded and Internet of Things, discussed the underlying factors that are driving the economics of intelligent systems. Discover how hardware commoditization, the ubiquitous nature of connectivity, and the emergence of Big Data a...

ARMONK, N.Y., Nov. 20, 2014 /PRNewswire/ --  IBM (NYSE: IBM) today announced that it is bringing a greater level of control, security and flexibility to cloud-based application development and delivery with a single-tenant version of Bluemix, IBM's platform-as-a-service. The new platform enables developers to build ap...

SYS-CON Events announced today that IDenticard will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. IDenticard™ is the security division of Brady Corp (NYSE: BRC), a $1.5 billion manufacturer of identification products. We have small-company values with the strength and stability of a major corporation. IDenticard offers local sales, support and service to our customers across the United States and Canada. Our partner network encompasses some 300 of the world's leading systems integrators and security s...
DevOps Summit 2015 New York, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that it is now accepting Keynote Proposals. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential.
"People are a lot more knowledgeable about APIs now. There are two types of people who work with APIs - IT people who want to use APIs for something internal and the product managers who want to do something outside APIs for people to connect to them," explained Roberto Medrano, Executive Vice President at SOA Software, in this SYS-CON.tv interview at Cloud Expo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
Nigeria has the largest economy in Africa, at more than US$500 billion, and ranks 23rd in the world. A recent re-evaluation of Nigeria's true economic size doubled the previous estimate, and brought it well ahead of South Africa, which is a member (unlike Nigeria) of the G20 club for political as well as economic reasons. Nigeria's economy can be said to be quite diverse from one point of view, but heavily dependent on oil and gas at the same time. Oil and natural gas account for about 15% of Nigera's overall economy, but traditionally represent more than 90% of the country's exports and as...
The Internet of Things is a misnomer. That implies that everything is on the Internet, and that simply should not be - especially for things that are blurring the line between medical devices that stimulate like a pacemaker and quantified self-sensors like a pedometer or pulse tracker. The mesh of things that we manage must be segmented into zones of trust for sensing data, transmitting data, receiving command and control administrative changes, and peer-to-peer mesh messaging. In his session at @ThingsExpo, Ryan Bagnulo, Solution Architect / Software Engineer at SOA Software, focused on desi...
"At our booth we are showing how to provide trust in the Internet of Things. Trust is where everything starts to become secure and trustworthy. Now with the scaling of the Internet of Things it becomes an interesting question – I've heard numbers from 200 billion devices next year up to a trillion in the next 10 to 15 years," explained Johannes Lintzen, Vice President of Sales at Utimaco, in this SYS-CON.tv interview at @ThingsExpo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
"For over 25 years we have been working with a lot of enterprise customers and we have seen how companies create applications. And now that we have moved to cloud computing, mobile, social and the Internet of Things, we see that the market needs a new way of creating applications," stated Jesse Shiah, CEO, President and Co-Founder of AgilePoint Inc., in this SYS-CON.tv interview at 15th Cloud Expo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that Gridstore™, the leader in hyper-converged infrastructure purpose-built to optimize Microsoft workloads, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Gridstore™ is the leader in hyper-converged infrastructure purpose-built for Microsoft workloads and designed to accelerate applications in virtualized environments. Gridstore’s hyper-converged infrastructure is the industry’s first all flash version of HyperConverged Appliances that include both compute and storag...
Today’s enterprise is being driven by disruptive competitive and human capital requirements to provide enterprise application access through not only desktops, but also mobile devices. To retrofit existing programs across all these devices using traditional programming methods is very costly and time consuming – often prohibitively so. In his session at @ThingsExpo, Jesse Shiah, CEO, President, and Co-Founder of AgilePoint Inc., discussed how you can create applications that run on all mobile devices as well as laptops and desktops using a visual drag-and-drop application – and eForms-buildi...
We certainly live in interesting technological times. And no more interesting than the current competing IoT standards for connectivity. Various standards bodies, approaches, and ecosystems are vying for mindshare and positioning for a competitive edge. It is clear that when the dust settles, we will have new protocols, evolved protocols, that will change the way we interact with devices and infrastructure. We will also have evolved web protocols, like HTTP/2, that will be changing the very core of our infrastructures. At the same time, we have old approaches made new again like micro-services...
Code Halos - aka "digital fingerprints" - are the key organizing principle to understand a) how dumb things become smart and b) how to monetize this dynamic. In his session at @ThingsExpo, Robert Brown, AVP, Center for the Future of Work at Cognizant Technology Solutions, outlined research, analysis and recommendations from his recently published book on this phenomena on the way leading edge organizations like GE and Disney are unlocking the Internet of Things opportunity and what steps your organization should be taking to position itself for the next platform of digital competition.
The 3rd International Internet of @ThingsExpo, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that its Call for Papers is now open. The Internet of Things (IoT) is the biggest idea since the creation of the Worldwide Web more than 20 years ago.
As the Internet of Things unfolds, mobile and wearable devices are blurring the line between physical and digital, integrating ever more closely with our interests, our routines, our daily lives. Contextual computing and smart, sensor-equipped spaces bring the potential to walk through a world that recognizes us and responds accordingly. We become continuous transmitters and receivers of data. In his session at @ThingsExpo, Andrew Bolwell, Director of Innovation for HP's Printing and Personal Systems Group, discussed how key attributes of mobile technology – touch input, sensors, social, and ...