I think the best software to create SWF is still Adobe Flash Professional (even my old CS3 is enough).
If you want to use free/open source software, you can use FlashDevelop instead (Windows only).