
Instead of working (hope my boss does not read this) I’ve developed FlashChat (credits go to mooska for an idea), which is installed as a regular panel in Flash CS3. It’s not something to be very proud of, since FMS is pretty easy, however it’s a nice app if you’re trying to pretend you work and chat with friends
Enjoy!
Kindisoft has just released SecureSWF 3.0. This is a very powerful ActionScript 3.0 obfuscator. Take a look at it’s features. To be honest I didn’t test it yet but it’s possibilities are very promising:
Decompilers Stopping Power:
secureSWF stops all known decompilers and disassemblers using the following advanced mechanisms:
* Control flow obfuscation.
* Dynamic code wrapping.
* Statement-level randomization.
String Encryption.
secureSWF helps you protect your Flash and Flex application from variety of security threats by providing literal strings encryption.
Access Limitation:
secureSWF limits access to your published SWF files through:
* Encrypted domain locks.
* Encrypted loader creation.
I was given link to this fantastic blog about ActionScript 3.0 design patterns. Enjoy 
Perhaps most of you know how to convert BitmapData to JPG, BMP or PNG ByteArray. If not take a look at Adobe CoreLib Project. I’ll show you now how you can convert ByteArray back to BitmapData, which can be useful if you for example want to store several images on the server in a single file.
package {
import encoding.JPGEncoder;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.events.Event
public class Converter extends Sprite {
[Embed(source = "image.jpg")]
private var image:Class
private const QUALITY:uint = 80;
public function Converter():void {
var bitmap:Bitmap = new image();
var bitmapData:BitmapData = bitmap.bitmapData;
//encode BitmapData to JPG
var encoder:JPGEncoder = new JPGEncoder(QUALITY);
var rawBytes:ByteArray = encoder.encode(bitmap.bitmapData);
//decode JPG ByteArray back to BitmapData
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, getBitmapData)
loader.loadBytes(rawBytes);
}
private function getBitmapData(e:Event):void {
var decodedBitmapData:BitmapData = Bitmap(e.target.content).bitmapData
trace(decodedBitmapData);
}
}
}
Rembember than loadBytes() can load ByteArray with JPG, BMP, PNG, or SWF and that you can easily encrypt ByteArray instance with as3crypto library. This trick can be extremly helpful when trying to obfuscate code.