There are quite a few Javascript frameworks that allow for animation (jQuery etc).
It's not a hack - it's creative use of DHTML.
The downside is that Javascript can eat the browser's memory. Flash, on the other hand, runs parallel to the browser (as a separate application) and so can be faster when rendering animated effects. BUT Flash requires the Flash Player plugin, which must be installed separately and may not be available for all browsers and in all devices.
So, both Flash and animation via Javascript have pros and cons.
HTML5, which Apple states will replace Flash, is not yet supported across the board, and will apparently offer even easier animation options.
Hope this helps. Unfortunately this is a "what is your opinion" sort of thing, rather than a cut and dried answer.