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 question before companies today is not whether to become intelligent, it’s a question of how and how fast. The key is to adopt and deploy an intelligent application strategy while simultaneously preparing to scale that intelligence. In her session at 21st Cloud Expo, Sangeeta Chakraborty, Chief Customer Officer at Ayasdi, will provide a tactical framework to become a truly intelligent enterprise, including how to identify the right applications for AI, how to build a Center of Excellence to ...
"We're a cybersecurity firm that specializes in engineering security solutions both at the software and hardware level. Security cannot be an after-the-fact afterthought, which is what it's become," stated Richard Blech, Chief Executive Officer at Secure Channels, in this SYS-CON.tv interview at @ThingsExpo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that Massive Networks will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Massive Networks mission is simple. To help your business operate seamlessly with fast, reliable, and secure internet and network solutions. Improve your customer's experience with outstanding connections to your cloud.
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution and join Akvelon expert and IoT industry leader, Sergey Grebnov, in his session at @ThingsExpo, for an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
Because IoT devices are deployed in mission-critical environments more than ever before, it’s increasingly imperative they be truly smart. IoT sensors simply stockpiling data isn’t useful. IoT must be artificially and naturally intelligent in order to provide more value In his session at @ThingsExpo, John Crupi, Vice President and Engineering System Architect at Greenwave Systems, will discuss how IoT artificial intelligence (AI) can be carried out via edge analytics and machine learning techn...
SYS-CON Events announced today that Datera, that offers a radically new data management architecture, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Datera is transforming the traditional datacenter model through modern cloud simplicity. The technology industry is at another major inflection point. The rise of mobile, the Internet of Things, data storage and Big...
Consumers increasingly expect their electronic "things" to be connected to smart phones, tablets and the Internet. When that thing happens to be a medical device, the risks and benefits of connectivity must be carefully weighed. Once the decision is made that connecting the device is beneficial, medical device manufacturers must design their products to maintain patient safety and prevent compromised personal health information in the face of cybersecurity threats. In his session at @ThingsExpo...
In his session at @ThingsExpo, Arvind Radhakrishnen discussed how IoT offers new business models in banking and financial services organizations with the capability to revolutionize products, payments, channels, business processes and asset management built on strong architectural foundation. The following topics were covered: How IoT stands to impact various business parameters including customer experience, cost and risk management within BFS organizations.
SYS-CON Events announced today that CA Technologies has been named "Platinum Sponsor" of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business - from apparel to energy - is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...
From 2013, NTT Communications has been providing cPaaS service, SkyWay. Its customer’s expectations for leveraging WebRTC technology are not only typical real-time communication use cases such as Web conference, remote education, but also IoT use cases such as remote camera monitoring, smart-glass, and robotic. Because of this, NTT Communications has numerous IoT business use-cases that its customers are developing on top of PaaS. WebRTC will lead IoT businesses to be more innovative and address...
An increasing number of companies are creating products that combine data with analytical capabilities. Running interactive queries on Big Data requires complex architectures to store and query data effectively, typically involving data streams, an choosing efficient file format/database and multiple independent systems that are tied together through custom-engineered pipelines. In his session at @BigDataExpo at @ThingsExpo, Tomer Levi, a senior software engineer at Intel’s Advanced Analytics ...
SYS-CON Events announced today that App2Cloud will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. App2Cloud is an online Platform, specializing in migrating legacy applications to any Cloud Providers (AWS, Azure, Google Cloud).
Recently, IoT seems emerging as a solution vehicle for data analytics on real-world scenarios from setting a room temperature setting to predicting a component failure of an aircraft. Compared with developing an application or deploying a cloud service, is an IoT solution unique? If so, how? How does a typical IoT solution architecture consist? And what are the essential components and how are they relevant to each other? How does the security play out? What are the best practices in formulating...
SYS-CON Events announced today that MobiDev, a client-oriented software development company, will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. MobiDev is a software company that develops and delivers turn-key mobile apps, websites, web services, and complex software systems for startups and enterprises. Since 2009 it has grown from a small group of passionate engineers and business...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
SYS-CON Events announced today that Dasher Technologies will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Dasher Technologies, Inc. ® is a premier IT solution provider that delivers expert technical resources along with trusted account executives to architect and deliver complete IT solutions and services to help our clients execute their goals, plans and objectives. Since 1999, we'v...
SYS-CON Events announced today that Ayehu will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Ayehu provides IT Process Automation & Orchestration solutions for IT and Security professionals to identify and resolve critical incidents and enable rapid containment, eradication, and recovery from cyber security breaches. Ayehu provides customers greater control over IT infrastructure throu...
SYS-CON Events announced today that Grape Up will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company specializing in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the U.S. and Europe, Grape Up works with a variety of customers from emergi...
SYS-CON Events announced today that Elastifile will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Elastifile Cloud File System (ECFS) is software-defined data infrastructure designed for seamless and efficient management of dynamic workloads across heterogeneous environments. Elastifile provides the architecture needed to optimize your hybrid cloud environment, by facilitating efficient...
SYS-CON Events announced today that Grape Up will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company specializing in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the U.S. and Europe, Grape Up works with a variety of customers from emergi...