If you are using Actionscript 3, and rolling your own collision engine, you are missing out on the ease of use of Collision Detection Kit. I am always reticent to use collision packages because they are rarely just packages. More often they require a set workflow and/or asset organization to take advantage of the collisions system.
CDK's organization allows you to work the way you are used to working, simply creating lists and then getting collision data back from those lists. Very slick. It also returns overlap and angle of collision. Its really a fantastic package and has saved me a lot of time time and headache on my current project.
My previous game, Squiggle Squid, is the best programming I have ever done. I don't mean that I achieved any amazing programming feats or even that my code is well organized. I simply didn't make many mistakes. I did very little refactoring or recoding. While this may not seem like a big deal to someone who programs every day, it is for someone like me, who only programs a few hours a week if at all, it's quite an accomplishment.
The secret to my success was having a newborn baby in the house. This may sound crazy that the most productive programming I ever did was while tending to the needs of a newborn but it's true. If you have never had a baby, here is the schedule: they sleep maybe 1 1/2 hours and then are awake for about 1 1/2 hours. While they are awake you feed them and cuddle with them. And much of the time they are asleep, you are cuddling them too.
This means I never had more than an hour or so to actually program. However, in the interim, I had a lot of time to think about programming. I would often sit in a dark room with a tiny baby in my lap just thinking about what I needed to accomplish next and how I would do it. In between all the admiring of my new daughter, of course.
This is important because my current project has been a nightmare of mistakes and recoding. I finally came to the realization of what I have been doing wrong., too much time programming at the keyboard and not enough time programing in my head.