Adobe Flash vs. Gnash -> very important bug

Carlos Nazareno object404 at gmail.com
Mon Apr 12 21:04:29 EDT 2010


There's been so many changes and additions ever since Flash 9 and AS3
was introduced. Among them is byte-level manipulation which allows us
to do really funky creative stuff, especially if combo-ed with AIR
which allows you to read & write to the local filesystem.

More importantly is the 2-100x increase in performance from AVM1-AVM2
(depending on how you built your app) which is crucial given the XO's
limited CPU & memory.

Gnash mostly supports AS2 and the AVM1 and is really just compatible
up to Flash 8 SWFs and there's a very very big obscure bug that's not
very documented in the AVM1 (AS2 code is ultimately converted to AS1
bytecode -- that's why AS1 & AS2 SWFs are compatible and can
communicate. AS2 & AS3 SWFs are not.):

There's a maximum filesize allowed per class because of the way the
AVM1 compiler works. I forgot the exact number, but once you go beyond
2000 lines of code in a .AS class file, things will just break down
and the app starts to malfunction.

We had one game project where the main Class file was approaching 3000
lines of code. We were wondering why after adding just 10 lines of
code which had completely correct syntax, the app would suddenly break
and just stop working at a certain point. It was because of that very
obscure bug (I don't have the link right now but it's in one of the
old obscure Flash MX docs about limits).

If you're wondering how the heck one reaches 2k+ lines of code for a
class (that class finally weighed in at 67kb plaintext in the final
build), 2k is not very hard to hit if you're developing a  complex
game.

-- 
carlos nazareno
http://twitter.com/object404
http://www.object404.com
--
interactive media specialist
zen graffiti studios
http://www.zengraffiti.com
--
"if you don't like the way the world is running,
then change it instead of just complaining."



More information about the Devel mailing list