HTML is popular, in part, because it presents a very clear and simple model for user interaction. Clicking a link or image usually gives you an immediate visual cue that something is happening (the browser window momentarily goes blank while the new image or page loads) and the Back button gets you back to where you came from, so you feel safe to explore the web.
The risk of using whiz-bang technology and complex interaction models to deliver applications is that you reduce usability and confuse users.
Macromedia has created some basic high-level design principles for HALO applications that attempt to guide developers in using the new, expressive power of HALO in ways that are appropriate to the task. We hope they will improve rather than degrade the user experience. The following are not intended to capture the entire science of good UI design or usability (there are plenty of books written about that), nor will you be assured of creating an effective application if you follow them. These goals are simply a few design-oriented ideas to aid to the process you are already following:
If you study the Flex application examples, you will notice many of these principles in action.
One question about Flex that I sometimes get is why Flex applications don't look like OS-native applications. The simple answer is that they aren't OS-native applications; they are Internet applications that run in all different browsers and platforms. Macromedia has not tried to make the set of components in Flex mimic the look and behavior of OS components exactly because this would set users' expectations for the look, style, and interactivity of controls running on web pages that could not possibly be met across platforms.
In addition, the desktop/OS model for controls is not appropriate for the rich client Internet. The web has changed people's expectations. Businesses and individuals want to customize the look and feel of applications so they match their brands and express their individuality. We believe that a modern application model for rich client applications should enable and support this expectation, while setting new standards for consistent interaction patterns and visual cues so that users don't become confused.