Flash Decompiler Trillix review
When you compile a Flash project, you know you create a swf file.
Such file is created according to the SWF File Format Specification so you can create your IDE and develop your Flash projects without using the official Adobe Flash CS4 package.
Since you can compile your own swf file, there is also a way to decompile it.
Flash Decompiler Trillix is the most advanced tool to convert swf to fla, with full support of Flash 10 and AS3.
Legal and ethical dilemma
As you must know, different Countries have different laws about copyrights. Even Wikipedia does not provide enough information about reverse engineering legality.
On the ethical side, you should respect developers’ work and don’t try to decompile their projects and “get inspired” from their code or use their graphics.
But it would be a big hypocrisy saying I’d never take a look to someone else’s secrets. If I could access to Coca-Cola formula or Google’s PageRank algorithm, I would.
Definitively.
My personal experience
As some of you know, I am the co-founder of a web company… you know… hosting, web apps, web sites, SEO and all those things you normally can’t talk about with women.
Recently we acquired a new customer with a Flash site. A well designed Flash site, I have to say. The problem was the company behind the project did not survive the economy breakdown and closed some months ago.
The customer needed some minor changes in the site and renewing the domain (and changing the hosting) but he never got a reply at the emails he sent to the old company owners.
That’s what happen when you rely on cheap companies (hint)
So we made two proposals, at two (very) different prices
1 – Redesigning the site making it as close as possible to the original one
2 – Decompiling the site and making the required changes
You can imagine the choice and finally I am ready to start the review
Decompiling test
I am testing this tool on the movie you can see at Pure AS3 magnifying effect using Displacement Map Filter.
The interface is just brilliant:

you can preview the movie, look at its properties and browsing its assets at the same time.
You can export single images as well as chuncks of codes, but the most interesting feature is the conversion from swf to fla.
And that’s what I did
Do you remember my original library?

well, the one created by Flash Decompiler Trillix is even more organized…

but the most interesting test is performed on the scripts:
this is the original one:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package { import flash.display.Sprite; import flash.display.Bitmap; import flash.display.BitmapData; import flash.filters.DisplacementMapFilter; import flash.geom.Point; import flash.events.Event; public class as3displace extends Sprite { // creating a new Bitmap variable var the_bitmap:Bitmap = new Bitmap(); // creating a variable to store "malecon" image. // notice you MUST specify width and height or you'll get an error // 1136: Incorrect number of arguments. Expected 2. var the_image=new malecon(500,373); // creating a variable to store the "displace_movie" movieclip var the_displace:displace_movie=new displace_movie(); // creating a point at the upper left corner var starting_point:Point=new Point(0,0); // creating a 100x100 bitmap data, that will contain the gradient movieclip var displacement_map:BitmapData=new BitmapData(100,100,true,0x808080); // creating the displacement map filter var displacement_filter:DisplacementMapFilter=new DisplacementMapFilter(displacement_map,starting_point,1,2,50,50,"color",0x000000,1); public function as3displace() { // assigning the "the_image" data (the photo) as bitmapData of "the_bitmap" variable the_bitmap.bitmapData=the_image; // in the displacement map, draw (copy) the content of "the_displace" movieclip // (the gradient sphere) displacement_map.draw(the_displace); // placing "the_bitmap" on the stage addChild(the_bitmap); // listener that triggers at every frame addEventListener(Event.ENTER_FRAME, onFrame); } public function onFrame(e:Event) { // changing the starting point of the displacement map filter according to mouse position starting_point.x=mouseX-50; starting_point.y=mouseY-50; displacement_filter.mapPoint=starting_point; // applying the displacement filter to "the_bitmap" (the photo) the_bitmap.filters=[displacement_filter]; } } } |
and this is the one generated by Flash Decompiler Trillix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; public class as3displace extends flash.display.Sprite { public function as3displace() { this.the_bitmap = new flash.display.Bitmap(); this.the_image = new malecon(500, 373); this.the_displace = new displace_movie(); this.starting_point = new flash.geom.Point(0, 0); this.displacement_map = new flash.display.BitmapData(100, 100, true, 8421504); this.displacement_filter = new flash.filters.DisplacementMapFilter(this.displacement_map, this.starting_point, 1, 2, 50, 50, "color", 0, 1); super(); this.the_bitmap.bitmapData = this.the_image; this.displacement_map.draw(this.the_displace); addChild(this.the_bitmap); addEventListener(flash.events.Event.ENTER_FRAME, this.onFrame); return; } public function onFrame(arg1:flash.events.Event):* { this.starting_point.x = mouseX - 50; this.starting_point.y = mouseY - 50; this.displacement_filter.mapPoint = this.starting_point; this.the_bitmap.filters = [this.displacement_filter]; return; } var displacement_filter:flash.filters.DisplacementMapFilter; var the_displace:displace_movie; var the_image:*; var starting_point:flash.geom.Point; var displacement_map:flash.display.BitmapData; var the_bitmap:flash.display.Bitmap; } } |
It’s a bit different, but it works the same way
Final considerations
A personal license costs $79.95, both for PC and Mac OS, and all in all is a must-have if you are a Flash developer. Besides strange cases like the web company one I discussed before, it’s really a tool that can save you hours and hours should your fla file get damaged or lost.
Really recommended. For more information and purchase options, go to www.flash-decompiler.com.
They can be easily customized to meet the unique requirements of your project.
12 Responses to “Flash Decompiler Trillix review”
Leave a Reply
- Citrus Engine released for free for learning
- My epic fail with ClickBank
- Get up to $100,000 for your next Flash game with Mochi GAME Developer Fund
- Create a dynamic content animated footer ad for your site in just 9 jQuery lines – 17 lines version
- Sell sitelocked version of your Flash games and even .fla sources to Free Online Games
- Protect your work from ActionScript code theft with SWF Protector
- Create a dynamic content animated footer ad for your site in just 9 jQuery lines
- Understanding Box2D’s one-way platforms, aka CLOUDS
- Triqui MochiAds Arcade plugin for WordPress upgraded to 1.2
- Box2D Flash game creation tutorial – part 2
- Create a Lightbox effect only with CSS - no javascript needed
- Flash game creation tutorial - part 1
- Create a Flash Racing Game Tutorial
- Flash game creation tutorial - part 2
- Make a Flash game like Flash Element Tower Defense - Part 2
- Flash game creation tutorial - part 3
- Triqui MochiAds Arcade plugin for WordPress official page
- Make a Flash game like Flash Element Tower Defense - Part 1
- Create a flash draw game like Line Rider or others - part 1
- Create a flash artillery game - step 1
- Flash game creation tutorial – part 5.2 (4.88/5)
- Create a flash artillery game – step 1 (4.79/5)
- Create a Flash Racing Game Tutorial (4.76/5)
- Create a survival horror game in Flash tutorial – part 1 (4.74/5)
- Create a flash artillery game – step 2 (4.74/5)
- Creation of a Flash arcade site using WordPress – step 2 (4.73/5)
- Flash game creation tutorial – part 1 (4.71/5)
- Flash game creation tutorial – part 2 (4.71/5)
- Create a flash draw game like Line Rider or others – part 1 (4.69/5)
- Creation of a platform game with Flash – step 2 (4.68/5)

(9 votes, average: 4.11 out of 5)



I have used it for several years now as I had a hard drive crash and lost a Flash project I had spend a week working on for a client to demo a product at a trade show and commercial for the same product. The program did the trick and I was able to get the client the files on time without starting over.
I don’t have it installed or have I used it since then but it is in my collection should I ever need it again.
Heck, decompilers has saved me hours of lost work more than once.
Adobe Flash sucks for Actionscript development. Flex + FlashDevelop works much better.
Do you know if SWFs with encryption can be decompiled with this, or are they more secure?
good question VideoGuy. I’ve never tried to decompile other ppl works as I consider it ethically wrong. I guess – with encrypted file you can still get decopiled code but much more messy. AFAIK the idea behind encryption in swf files is not to make decompiling impossible but to make it as difficult as possible, so one who is trying to steal our code will give up :)
Although some people will use these tools maliciously they do come in handy when you have either deleted the fla or your hard drive has decided to die on you.
its true, decompilers can save a hell of a lot of time.
but don’t make it sound like its just peachy perfect:
1. The organization of the library that you tout is absolute crap when it comes to larger projects. Trying to find one sprite in a list of hundreds named Sprite# is tedious at best. Feature Request: Name the sprites according to their Class Name. Organize them in folders according to their Class Path. If they have no name and no path, then Sprite# is probably the best you can do.
2. Code does not come out crystal clear as your example shows. You run into some confusion when addressing function variables… they are named something generic and given a number. Nothing trillix can do about this one so I will move on. However, there are some edge cases where code actually gets altered and does not compile until addressed. Or worse, compiles but is slightly off. I reviewed SoThink Decompiler a year ago: http://blog.ickydime.com/2008/08/sothink-swf-decompiler-thoughts-bugs.html and speak about this problem in the review. Trillix gave me a free copy to review afterwords but it was so similar to SoThink that I ended up not doing the review…
With all that said, it still saves you a hell of a lot of time. I just think people should be aware that it is not magic, it has limitations, and you should still expect to do hours (if not days) of rework trying to find things and fix decompiler bugs.
Decompilers really works, but the only problems is that it creates, at least for me, hundreds of new Layers, I had to make few editions, but it worked nice with me. :]
I have used Trillex . Only problem is when loading external files .I know it can’t decompile it :))
People have been inspired/stealing code from each other since the dawn of the internet.
Personally I don’t think there’s anything like copyright on the internet and that’s the way it should remain.
If I was to decompile someone ealses work it would be purely for the sake of learning from professional developers. I think that alone justifies decompling.
However I don’t care for ripping code and call it my own without a clue on how the script really functions. That’s where I draw the line as far as ethics are concerned.
There are free decompilers, as well. You just don’t get the swf-to-fla conversion or the ease of use.
question, how does one decompile in AS3 ? i can’t see the property that allows for AS3 decompilation. the default settings is giving me AS1 code.