There are a variety of ways of creating Flash applications. A free, open source solution that has been gaining popularity is OpenLaszlo. It uses Java to compile javascript and XML source files into Flash - enough buzzwords to interest even the most jaded programmer.
After installing Laszlo, the first thing I noticed was how developer-focused the system is. To compile and run your Laszlo source you just need to naviagate to it in a browser, where it appears in a Laszlo frame along with all the essential links to docs and resources that you could need. I used vim to edit the source, then just refreshed the browser whenever I made a change. It was a bit slow to compile even my very small program, but I don't know whether this increases much for larger programs.
The included documentation and tutorials were great, with the exception that a few new features, such as drawing, were only described in the tips section of the Laszlo web site.
For a very few features, such as SOAP, the running Laszlo code must interact with a server-based java servlet. However, mostly you can just do a solo (ie. flash only) deployment. The server is still required for compilation and development.
For my first Laszlo program I created the television sizer. I spent a while putting together horrendous, but working, code. After a few days I got a better idea of how things were meant to work, and easily fixed my earlier efforts. So, while it was a bit of a jump from languages such as PHP, Perl, Python and ASP, it was only a small jump. The use of tags for everything made it feel like Cold Fusion, though much simpler and, as you'd expect, more graphically focused.
It's difficult to imagine it scaling well, but then how big would anyone want a flash application. Overall, it's been well worth learning, and might come in handy one of these days.