Workers extension presentation on YouTube.

Workers adds concurrency in flash, but they are hard to use and maintain. I solve this problem with mvcExpress v2 framework extension for workers!
mvcExpress worker extension will let you create background workers with one line of code, automatically set up communication between them for you to use, and it will automatically register your class aliases for your custom objects to be typed then sending between workers.

Example project ZIP download:

Framework homepage:


Curse of inheritance in mvcExpress


release candidate for mvcExpress version 2 released!

I want to use this opportunity to talk about one thing that I am not happy regarding mvcExpress framework, I call it – curse of inheritance!

It is very hard to write this post, as it’s hard to criticize your own creation, but I think it is fair to share both good’s and bad’s to let you know there you are getting yourself into.

In short – extensibility mvcExpress currently is implemented by extending base classes. If you want to add a new feature to framework you will need to extend base classes, this leads to trees of inheritance. Inheritance have some negative effectsyou will have some inconveniences, code duplication and in general writing custom mvcExpress extensions is possible, but not as easy as I would like it to be.

If you just want to use already written extensions – your are in luck! It is very easy to switch extensions(in most cases – just changing class you are extending), and if something goes wrong – framework has some dedicated code to figure out what went wrong. (For instance it will tell you if you are using class that is not supported by current module.)

I have no doubt that composition would support extension creation better, but I want to give my reasoning why in my opinion inheritance might actually work for mvcExpress. (…and I don’t want to follow path  some other flash mvc framework, as I don’t like there it ended)

Continue reading Curse of inheritance in mvcExpress

v2 feature: single commands per message


I keep improving mvcExpress! (Or in this case I should say- I keep fixing horrible v1 mistakes!)

One very important change – limitation to have one command per message added. This has several positive effects:

  • command execution is a bit faster. (5-10%)
  • If you send a message – you will have only one command to follow this message to. (less confusion.) (If you still need to execute many commands with single message, you do it from executed command.)
  • If you map command to message that is already mapped – you will get error. (more control over what is happening in your application.)
  • But if you want to just map over previous command, without unmapping it first – you can do it with help of canMapOver parameter.

Continue reading v2 feature: single commands per message

mvcExpress version 2.0.beta1 release


I am confident enough with mvcExpress v2 to release first beta. It is unlikely that API will change, but I don’t want to promise anything at this point.

Then I look at it.. it did not changed that much, I did not touched anything that worked well!

I only changed what did not work – framework extendability, and now it will actually allow extending framework features, instead of hacking it.

My new approach is also not perfect (I call it – plagued with “inheritance curse”), I don’t want to solve this problem with composition, as this will result in bigger function stacks and lower performance. “Inheritance curse” is more of inconvenience, then real big problem. (I will talk about this more in dedicated post about it.)

If you need to convert big project form mvcExpress v1 into v2 – know that I am preparing tool for making  most conversion work automatically.

Here is recap of changes:

Basic features:
  • ‘org’ package is dropped.
  • ModuleSplite and ModuleMovieClip removed. (changed with better workflow using ModuleCore.)
  • onRegister and onRemove made protected in mediators.
Advanced features:
  • inject points added  for main actors (ProxyMap, MediatorMap, CommandMap, Messenger) to make it possible to use extended classes. You will not need to use it for most of your projects.
  • AssertExpress class changed from singleton to static class.



mvcExpress logger is not ready to be used with v2 because of one bug. I am on it.

I am so happy with new changes! I already converted mvcExpress live to extension(or DLC.  What can I say… I am gamer!) and more extensions DLC’s will follow!

Feel free to discuss/critique/leave feedback in the forum.

and… Have fun with flash!

mvcExpress version 1.4.2 release


today I release mvcExpress version 1.4.2 and put it to feature freeze. (Of course I will keep fixing bugs on it if you find any.) All new features will go to v2 from now on.


  • FEATURE: commands get new function : getMessageType():String This function will give you message string, that triggered command. If command is executed directly(without message) you get null.
  • SMALL FEATURE CHANGE : MediatorMap function isMapped() to test if view object is mapped simplified. (providing mediatorClass now is optional).
  • BUG FIX : mediators failing to remove all event listeners(added by addListener()) function on remove, .
  • BUG FIX : fixed bug with autoinit set to false, not properly initializing modules.
  • trash/experimental files removed. (They only confuse newcomers.)

My full focus now is on version 2. (First release candidate will come out this week.)

Have fun with flash!

mvcExpress version 2 is coming soon!


I want to make small status update on what is happening with mvcExpress framework.

During last couple of months I am actively developing extensions for mvcExpress:

  • Worker extension : will let you use workers using mvcExpress modules and communication. (it hides worker API.) (Work in progress)
  • pureMVC to mvcExpress extension : will let you change pureMVC project into mvcExpress project in matters of minutes(and improve performance of your app), with help of  air application. (Work in progress)
  • viewTree manager extension : will give tools to manage view tree of your app in very convenient way. (paused.)
  • 3d/2d framework support extension. (like Starling, Away3d.) (planned.)

Working with these projects I noticed one common problem with mvcExpress – it is very hard to extend it. In many cases I had to hack my own framework to accomplish  what I want. (I treat it as a compliment, as it was designed to be as solid as possible.)

But now I want to change that, I want to make it more flexible and extendable.

What will not change:

  • Performance.
  • Main API.
  • The way is used then extended.

What will change:

  • ‘org’ package is dropped.
  • ModuleSplite and ModuleMovieClip removed. (changed with better workflow using ModuleCore.)
  • onRegister and onRemove made protected in mediators.
  • mvcExrpess live implemented as extension, not stand alone framework version.
  • inject points added  for main actors (ProxyMap, MediatorMap, CommandMap, Messenger) to make it possible to use extended classes.
  • site.

In my opinion – package change and protected onRegister/onRemove will be most annoying change, to fix that I will give you tool to automatically refactor mvcExpress v1 to mvcExpres v2 !

mvcExpres v2 planed to be released in about a weak.

Have fun with flash!

mvcExpress and C.O.L.T.


I released a YouTube video presentation/review/tutorial about C.O.L.T. and how you can use it with mvcExpress.

C.O.L.T. is a tool made by that gives you AS3 live coding possibilities.

Sadly C.O.L.T. turn out to be not that useful how I wanted it to be, mainly because of limitations it currently has… but you can use it!… in very specific scenarios with many restrictions, and you have to keep in mind that you risk wasting a lot of time finding the ways you can make this tool useful for you.

Because my negative opinion about the tool it’s no surpriyse that codeOrchestra censured my video out of there contest, with this argument:

it’s a marketing matter, it was Supposed To bring positive attention to the COLT, to make people say “Wow”

although my video met all there contest rules, and drive 16.000 unique views on YouTube winning the first spot in there contest. (10.000 views was inflated to get the video to youTube front page.. (hey… rules did not say anything about the quality of the views)).

In any case, I am very happy that I did that video, it gave me lot of experience in making online videos and how YouTube works in general, I will need it then creating mvcExpress training course online. (yes, its coming soon!). And who knows… maybe C.O.L.T. will get better in the future and I will actually want to use it.

IntelliJ IDEA templates for mvcExpress


I am currently testing IntelliJ IDEA as my new AS3 IDE, and I am happy to say that I like what I see so far.
Also, IntelliJ team was kind enough to provide me with Open source IntelliJ IDEA license!

I added file templates here: downloads at GitHub.

(I also added FlashDevelop files while I was at it.)

I will add more stuff soon.


IntelliJ_IDEA_mvcExpress-metaData.dtd added. (use “save as..” to save it.)

It contains autocompletion for Inject metadata tag.

  • Open IDEA Settings (Ctrl+Alt+S) | Schemas and DTDs
  • Add URI urn:Flex:Meta and path to your dtd file.


simplest and fastest ActionScript 3 MVC framework