Some pros and cons of various solutions
I've used Flex, Silverlight and JavaFx and they all have strengths and weaknesses. Personally I don't see much real-world reason to use Silverlight or JavaFx at the moment unless you absolutely must do something that Flex doesn't offer.
Pros - Eclipse based IDE is great, especially for UI creation, XML UI description language, ubiquitous, cross-browser, cross-platform, AIR for local apps, browser component for AIR, many similarities to standard JS / CSS development
Cons - No multi-threading leading to lots of stupid hacks, ActionScript is verbose, legacy heritage often shows through.
Pros - Easy to pick up for .NET developers, C#/VB and other supported languages, small runtime, cross-browser, sandboxed
Cons - Not cross-platform (no Moonlight does not count), cross-browser is no guarantee that sites will be, Silverlight is not .NET implementing a subset of system framework and is not binary compatible either, typical MS is pushing their own video / audio standards and delivery mechanisms to the detriment of industry ones.
Pros - Runs over JRE, able to use any existing Java code, cross platform (eventually), has profiles for desktop and portable devices, finegrained security means it can do stuff neither Silverlight or Flex can do .
Cons - JavaFx script language is weird and very unlike Java. UI is declarative JavaFx rather than XML. Tools like Netbeans are simply awful. Platform needs another major release to be considered feature complete.