I've heard many times that I should avoid flash for my website. Yet no one has told me a good reason for this. I've searched for reasons and I see many that are not true (such as text in flash are not indexable by search engines) or may not necessarily be true or significant enough (eating more bandwidth. Would a JS equivalent be bigger or smaller?).
My site uses flash to playback sound (m4a). I don't have to worry about indexing, the back button not working, etc.
But I have a feeling there may be other reasons. What are the reasons I shouldn't use flash on my website?
I'll note one, the fact iPhone/iPod Touch and mobile 开发者_C百科devices do not support it. Not a big deal for most sites and it's obvious. What are other reasons to avoid flash on my site?
Edit: It might go without saying, but this answer is over a decade old at this point and there is now absolutely no good reason I can think of to use Flash. All of the functionality that Flash has is now natively supported by modern web browsers.
You cannot open links in a new tab in Flash. You cannot use the browser's "Find" feature in Flash. You cannot zoom in Flash. You cannot use mouse gestures in Flash. You cannot use your browser's spellcheck in Flash. I could go on.
However, you can play video and audio in Flash. You can show complex animations in Flash. You can access the user's webcam and microphone in Flash. And you can do many other things in Flash that you cannot do in HTML--in a cross-browser way.
In other words, Flash is bad for usability, but has many legitimate uses. If you need one of Flash's features and HTML just doesn't cut it, there is no reason not to use Flash. However, you need to be aware of the drawbacks and not use it simply because you want to.
Flash is, by far, the best multimedia plugin for the browser there is.
It gets a lot of flak surrounding its accessibility and "annoyance" level, but these stem from people using it for sub-optimal purposes: eg, building an entire site in flash, pop-over advertising. As such, I would disregard this criticism. You can imagine that if there were a trend towards people replacing all the text on their websites with jpegs, there would be a lot of complaints, but it would be silly to blame Photoshop or the <img>
tag for that trend.
Flash is 100% perfectly suited to purposes such as animation, video, audio, and gaming. Use Flash on your site when you need to use elements such as these.
Aside of the fact that iPhone/iPod Touch/iPad don't support flash which you've already mentioned, there is also the fact that many users have flash disabled to prevent being shown advertisements (a common use of flash).
Flash is a tool just like PHP, ASP.NET, Ruby On Rails. Like any framework you can do sites that are good and bad. Any tool can be abused, Flash has gotten a bad rap because there are many annoying sites that use Flash. However that are FAR more that use Flash in a good way.
A major reason not to use Flash is because Adobe Flash is proprietary software. This means it is developed solely by a single company, and the source code is not available to the public. This is bad because:
- Flash is really only available for the platforms that Adobe decides to support. Currently, the list includes Mac OS X, Windows, and Linux (if you have a certain kind of CPU). A lot of platforms and architectures are marginalized, most notably the iPad/iPhone. That doesn't just hurt those weird people using FreeBSD on SPARC or whatever, it limits adoption of such platforms.
- Many people morally object to installing any proprietary software at all for various reasons:
- Using proprietary software lessens interest in free alternatives. Also, Flash is the biggest roadblock of a fully open Web.
- Running software you (or the public) don't have control over makes it more likely that someone else might use it to spy on you.
There are a few open source Flash implementations, such as gnash and swfdec. However, last time I checked, most Flash content simply does not work with them.
Although Flash has a bad reputation for being associated with intrusive ads and gaudy effects, this could also be said about excessive JavaScript. Just because a technology is often abused doesn't mean it should be considered harmful and shunned categorically. In my opinion, Flash as a technology is actually really great. However, (primarily) because it is proprietary, Flash limits accessibility and adoption of new technologies.
Accessibility.
Screen readers can't read flash files, can't understand what the flash content represents & can't read it. It's important not to discriminate against people you have problems reading/seeing the screen.
If you are just using it to play audio, I would stick with it. It works for that and has been around for a while (I mean, it's not the greatest thing ever, but it does work).
If you are thinking of designing an entire site in Flash, I would advise against that, as you have then totally eliminated mobile devices.
Flash is annoying because:
- Users have to have the plugin
- Context menus don't work right (you get the Flash context menu instead of the browser's)
- Mouse gestures fail when started over a Flash object
For audio, I'd say Flash is probably the best cross-platform method though. If you're really hardcore, you could nest it inside an <audio>
tag, so that people with a non-IE browser don't need Flash. I believe it works something like:
<audio $attributes>
<embed $attributes />
</audio>
Any browser that understands the <audio>
tag should ignore anything inside it.
Disclaimer: It's probably not worth the effort. Everyone has Flash, and as long as you're not using it for your layout, you should be fine.
If it's just to play back some audio, I'd say it's an acceptable use of Flash. At least until IE catches up with the present and implements <audio>
. Video is also fine, at least for the moment.
Just don't create your entire website in Flash. They're hard to use and that should be enough not to make Flash websites.
Nobody mentioned this one yet:
- because of Adobe's abysmal security track record (major reason invoked by Apple btw)
In my view it's an insecure underperforming clumsy proprietary product that anyway won't work on the millions of iPhone/iPad out there.
Heck, I didn't even bother to install Flash on my Linux workstation (and, no, I don't watch youtube videos on my workstation ;)
Anyway, HTML5 is here and it's here to stay and it makes Flash even less compelling.
Why I don't use flash:
I have to pay to use, but I can't have a free simpler tool for using flash.
The concept, most of flash sites uses some fancy presentation.
I can do the same things using javascript. Without using big tool.
You have to install a plug-in to play it, some people have problems to do that(really I've seen it once, I can see it again)
Stopped impressing me, really all the things I can see in flash, I've saw years ago. Nothing in flash have stunned me. So I think that won't be more.
So if I can use a feature like javascript, that's impressing over the years, and getting more libraries and plug-ins everyday. Why I would use something that I have to pay for it, that haven't done something great, since...
The problem with Flash is that as a proprietary standard, it is limited and not flexible with regard to community input. Other than IE, it is the greatest hindrance, IMHO, to a mature web and limits imagination and innovation.
A mature web is one with content fully controlled by the user. As such, that user should be able to do such things as go forward/backward in history, adjust the size of their display, or even choose not to have any visual display at all. Content and style should be separate. Markup should give context to content. Flash does none of this, but can be added to a site that does.
So, if you want to serve your visitors a hollow magazine page with video and links, or if you are of the opinion that your visitors should view your content only in the way that you have predetermined, then Flash is the only tool you may need. If you want to add functionality at the expense of progress, then Flash is a great addition to your site. Every tool has a trade off.
Rich internet apps (regardless of framework) go against the original intent of the web. That being said even the w3c is getting on the bandwagon with html5. So the best advice is probably use it when you need to and avoid it when you don't.
Main reasons for me:
Flash sites tend to be slower for me (running on a mac) and I've found some sites (hotels in particular), where I was totally unable to access some of the functionality.
I've noticed recently that more and more flash items on pages seem to be throwing errors (I have Adobe flex installed at work, and get a prompt to debug it). The latest version seems to be a bit shaky.
Most modern netbooks and some old computers' performance is still OK from internet browsing and document editing and a lot of people are not going to replace their computers to the powerful ones as they are happy with what they have got. But since Adobe Flash v10+ and windows audiodg.exe process introduction Flash object in the browser caused that these computers stop responding. This causes that websites loses their visitors when the website is rebuilt to be a Flash based application. As an example store.nike.com can be given. Even on Windows XP a single core systems with CPU up to 1.6 GHz are not good to browse this website.
While accessiblity, propriety, speed and search friendliness all are valid concerns for flash use, they are style choices. Preferences. Decorative. Let's face it, flash does make somethings easier to do.
The deal-breaker: when you use Flash you expose your users to very serious security concerns. Safety first.
精彩评论