Ever watch a parent spoil their kid rotten? "Sure, son, stay out as late as you want. Throw a keg party in the woods with your pals. Take the Cadillac while you're at it. Don't worry about those college apps."
I'm sure you know the type. This means you also know the polar opposite -- the parent who watches over their kid with hawk eyes and iron talons. "I want you to call me every hour you're out with those friends, I want to know where you are, and I want you home before 10. And tomorrow I'm coming with you to school to make sure you sit in the front row and your eyes are on that blackboard."
The slacker parent has much in common with ActionScript 2. For starters, the phrase "silent failure" applies to both. Did you mistakenly call a function that doesn't exist? MyClassInstance.wronglySpeeledFunctionCall() will do absolutely nothing in a smooth, complaint-free manner. You'll be scratching your head for an hour or two, trying to figure out why something just isn't right with your video game.
Did you accidentally let garbage spill into one of your arrays? When you plug that array into your 15 or 20 for-loops, you'll never know that every so often, myArray[99] gets populated with "undefined", because the logic in one of your calling functions was faulty. The loop just sees the undefined item, shrugs and moves on. Who says Booleans have only two values? Not AS2; "true", "false" and "undefined" are all kosher. And in the Flash AS2 IDE, if you'd like to scatter your ActionScript on buttons and MovieClips (in other words, put it wherever you want, whenever you want), that's okay too.
ActionScript 3 has all the overbearing neuroses that AS2 lacks, and it'll make you a more responsible programmer in short order. The compiler won't let you call a function unless it's absolutely certain that function is defined (well, it will if you "cheat", but we'll get into that later).
Any time you try to do something with a null property or value, AS3 calls a foul. More often than not, AS3 requires you to import specific libraries (even MovieClips) for specific tasks at the top of your code. You can no longer directly access the _root of the main timeline from wherever you happen to be (there's a "root" property of each MovieClip, but that's more relative than the old "_root"). Classes must be contained in a package, and must be declared public for foreign code to access it. All of this may seem like more of a pain than eating your vegetables before dessert, but it forces you to think about what you're doing and why you're doing it. When you're forced to think, you're forced to make your code more relative and ultimately more adaptable.