(Some of this has already been mentioned whilst I was typing, but...)
1) What the hell is level0?
Informally speaking, it's the (base) layer of hardcoded stuff created using the Flash UI drawing tools. If you create everything via ActionScript it never gets used. So presumably you must have placed something on the stage manually?
2) Can a class both extend movieclips and also inherit from another class?
No.
Once you start designing more complex classes like that (which is a
good thing, generally) there are two things which help:
1) Using interfaces. Interfaces are good. Learn to love them.
2) Thinking about the difference between "class Foo
is a MovieClip" and "class Foo
has a MovieClip". This distinction is important in any OO language, not just ActionScript. You only want to inherit in the former case. Doing so in the latter case is lazy and a habit that can cause trouble for you as your program complexity increases.
I'm starting to think that I need separate classes for the different units in this game, but it would be highly efficient if they could all inherit some common functions from a parent "Unit" class.
In this scenario a third option would be to have Unit inherit from MovieClip, then individual unit types inherit from Unit.
As for AS3, what exactly is it that makes it easier to use?
AS2 allows you to cheat in various ways when writing things, primarily by being sloppy with types and properties. It in turn is sloppy internally in the way it does things. All this is superficially convenient, but means that as you write more complex software you will start getting nasty problems associated with this sloppiness (such as runtime type errors, runaway memory consumption, poor performance and so on).
AS3 may cause brief growing pains as you learn to do things properly, but then the compile-time type checking will find a lot of your bugs for you and everything will run faster and be more stable. There are also numerous ease-of-coding benefits due to improved libraries. For example: Not all DisplayObjects are drawable Sprites and not all Sprites are MovieClips. You can load in or draw graphical data to offscreen objects unconnected to your visual hierarchy and then add them anywhere. Clearly tremendously useful for games.