Flash vs. HTML5: Bitmap Rotation and Scaling

Normal bitmaps can be boring, so many games spice them up by rotating and scaling them for various purposes. Rotated characters can follow the curve of a 2D terrain in a game like Dragon, Fly!. Mario himself can scale up to huge size in New Super Mario Bros.. So today we continue the HTML5 vs. JavaScript series by testing the performance of rotating and scaling bitmaps to better compare the performance across Windows, Mac, iOS, and Android. Will Flash maintain its lead? Read on to find out.

Read the rest of this article »

Flash vs. HTML5: Bitmap Drawing Speed

HTML5 is all the rage and a lot of Flash developers are either curious about it or have actually made the switch. But how does its performance stack up against Flash? That is a very complicated question, so we’ll begin today with just a simple test of the speed at which a lot of bitmaps can be drawn to the screen. Who will win? Read on to find out.

Read the rest of this article »

How To Fix the XML Memory “Leak”

Dealing with XML files can very easily trigger Flash to “leak” memory. Your app may only keep a tiny fraction of the XML file’s contents, but the whole file may stay in memory and never get garbage collected. Today’s article examines how this happens and how you can clean up all that unused memory.

Read the rest of this article »

How To Cut Texture Memory Usage In Half

ATF textures are great at reducing texture memory usage but sometimes you can’t use them. If you’re dynamically generating the texture (e.g. from a snapshot of a DisplayObject) or you’re loading the texture from a third party then you won’t have the (realistic) option of using compressed ATF textures. Today’s article shows how you can still save a bunch of memory, even without ATF.

Read the rest of this article »

AMF Serialization Tricks

AMF is great in its stock configuration, but there are some little-known tricks to make it even better. Today’s article shows you how to customize the serialization and deserialization of objects to achieve even smaller file sizes and gain maximum control.

Read the rest of this article »

Why Objects Serialized With ByteArray Are So Small

We know that you can automatically serialize anything to a ByteArray and that it’s faster and smaller than XML or JSON, but why is it so much smaller? Today’s article investigates a bit and reveals the secret that makes it such an efficient format and how that can save you a lot of manual work when it comes time to deserialize the ByteArray.

Read the rest of this article »

Stage3D Model Matrix: Scale, Rotation, Translation

One essential to a Stage3D app is the ability to manipulate models in the 3D scene. Today’s article presents a class for making this really easy by avoiding all the manual work you’d to to save translation, rotation, and scale values as fields and manipulate various Matrix3D instances. Read on for the source code and a demo app.

Read the rest of this article »

If-Else Trees vs. Array and Vector

We’ve seen that if-else trees are way faster than Object, Dictionary, and even switch at key-value mapping, but how do they stack up against Array and Vector? Today’s article puts them to the test and uncovers some unexpected results.

Read the rest of this article »

450x Speed Up Copying Between Collections

Programming in AS3 invariably involves choosing between various collections: Array, Vector, Dictionary, Object, ByteArray, and so on. What if you need to quickly copy between them? Your choice of collection could result in a 450x slowdown in your app… or a 450x speedup!

Read the rest of this article »

Optimizing AS3 with JavaScript

Now that AS3 is performing slower than JavaScript in some areas, should we be looking to optimize our AS3 by offloading tasks to JavaScript? That may sound perverse, but the possibility of major speedups is tempting. Today’s article looks for speedups using Flash’s AS3-to-JavaScript bridge: ExternalInterface.

Read the rest of this article »