Indeed, it is all a bit less than ideal. MTASC has annoyed me by having completely broken type checking – I eventually ripped out all of the type suffixes from my variable declarations and reverted to effectively unchecked Javascript, because that was the only way I could find to prevent it from misidentifying my variables as types other than the ones I had explicitly declared for them. Also it seems to object if I declare a variable in an inner scope with the same name as one in an outer scope; a warning in case I'd done it by accident would be fine, but disallowing it completely is inexcusable for a compiler one of whose major boasts is that it gets local-variable scoping right where Adobe gets it wrong. And swfmill is currently under suspicion as the cause of my embedded sound files not playing correctly.
I am half tempted to borrow someone's copy of the approved Adobe authoring software, or go round to their house and use it briefly, just to confirm whether or not the sound problem really is related to my tool choice.
I actually had access to the Adobe tools when I worked on my stuff, but found them so incredibly bug-ridden and painful to use that I had better luck with the open source tools. At least with a text-based tool you can revert, diff, etc and so track down a bug reasonably reliably to work around. :)
Yes, I had the problems with types, too, and didn't use them, but I assumed that I didn't understand the type system (I didn't really want to learn too much about these things, so happily dismissed things as "whacky nonsense, I don't want to get involved with").
I've looked at a fair number of flash apps "under the hood" and they all seem to be a horrible mess of workarounds, abandoned, unused blind alleys, etc. So I'm pretty confident it's an artefact of the provided environments, :(.
At least with a text-based tool you can revert, diff, etc
Indeed. I certainly wouldn't want to switch to using the Adobe tools, even if I had a free copy of them, because I much prefer all my source files being in easily source-controllable text. At most I might want to track down and fix the bug in swfmill, if it does turn out to be one.
but I assumed that I didn't understand the type system
I suppose it's possible that there's something I don't understand about the type system and MTASC is getting it right, but I doubt it. If I declare a variable as var x : Object and the compiler subsequently rejects a reference to x.foo (having put the foo property in myself) on the grounds that type String doesn't have that property, and if I haven't declared any other variable in the entire program with the same name, then any type system which makes that error message justifiable is one I don't want to understand!
and they all seem to be a horrible mess of workarounds, abandoned, unused blind alleys, etc. So I'm pretty confident it's an artefact of the provided environments
As far as I can easily tell, the end-product Flash format itself is a horrible mess of abandoned or unused blind alleys and multiple non-interchangeable half-overlapping ways to achieve the same thing. It's more confusingly non-orthogonal than a street map of central Cambridge. So I wouldn't have a hard time believing that the awfulness of the available development environments was in turn an artefact of the target platform...
FWIW when I was experimenting with my flash game, I ended up with a swf file which #included a text file with all of the actionscript script, and hence could process the text file in a normal source control way -- I don't know if that's relevant for you.
That'd manage most of the convenience, certainly, but in my current setup I also get to manage the media resources (fonts, sounds, images or movies if I had any) in a text-based (XML-based, in fact) way; it's all diffable. Unless it should turn out that there is really no practical way to sort out my sound issues other than using the Adobe tools, "pay a load of money for software which manages to do nearly as well" doesn't have that indefinable air of a good deal about it for me :-)
Oh, totally, I'd agree with that conclusion. Just that they didn't have the specific (and possibly most glaring) flaw of not letting you source control actionscript.
swfmill
:-)Indeed, it is all a bit less than ideal. MTASC has annoyed me by having completely broken type checking – I eventually ripped out all of the type suffixes from my variable declarations and reverted to effectively unchecked Javascript, because that was the only way I could find to prevent it from misidentifying my variables as types other than the ones I had explicitly declared for them. Also it seems to object if I declare a variable in an inner scope with the same name as one in an outer scope; a warning in case I'd done it by accident would be fine, but disallowing it completely is inexcusable for a compiler one of whose major boasts is that it gets local-variable scoping right where Adobe gets it wrong. And
swfmill
is currently under suspicion as the cause of my embedded sound files not playing correctly.I am half tempted to borrow someone's copy of the approved Adobe authoring software, or go round to their house and use it briefly, just to confirm whether or not the sound problem really is related to my tool choice.
Yes, I had the problems with types, too, and didn't use them, but I assumed that I didn't understand the type system (I didn't really want to learn too much about these things, so happily dismissed things as "whacky nonsense, I don't want to get involved with").
I've looked at a fair number of flash apps "under the hood" and they all seem to be a horrible mess of workarounds, abandoned, unused blind alleys, etc. So I'm pretty confident it's an artefact of the provided environments, :(.
Indeed. I certainly wouldn't want to switch to using the Adobe tools, even if I had a free copy of them, because I much prefer all my source files being in easily source-controllable text. At most I might want to track down and fix the bug in
swfmill
, if it does turn out to be one.but I assumed that I didn't understand the type system
I suppose it's possible that there's something I don't understand about the type system and MTASC is getting it right, but I doubt it. If I declare a variable as
var x : Object
and the compiler subsequently rejects a reference tox.foo
(having put thefoo
property in myself) on the grounds that typeString
doesn't have that property, and if I haven't declared any other variable in the entire program with the same name, then any type system which makes that error message justifiable is one I don't want to understand!and they all seem to be a horrible mess of workarounds, abandoned, unused blind alleys, etc. So I'm pretty confident it's an artefact of the provided environments
As far as I can easily tell, the end-product Flash format itself is a horrible mess of abandoned or unused blind alleys and multiple non-interchangeable half-overlapping ways to achieve the same thing. It's more confusingly non-orthogonal than a street map of central Cambridge. So I wouldn't have a hard time believing that the awfulness of the available development environments was in turn an artefact of the target platform...