
在中国,Flash 似乎成了网页设计的必需品,绝大部分站点都放一个图片轮换的flash,甚至主导航菜单也不例外,在我接触的项目中,甚至企业内容BS软件,用户也要求放点“好看的”Flash。
为什么要放Flash?
好看。这是绝大部分客户的感受,对他们来说看到一些“能动”的东西在屏幕上走来走去,是一件很神奇的事情。国内对Flash的应用大多还是停留在 2D动画编辑的阶段,和 gif 不同,后者只能有 256 色,并且不能方便地进行鼠标、键盘等的事件处理。我不是说网站不能放flash,我只是很奇怪,为什么那么得必须。
网站放Flash应该避免出现的几个问题
flash导航菜单
用flash做站点主导航、菜单是一件很愚蠢的事情。搜索引擎根本没办法抓取,对搜索引擎来说,你的站点就是一张首页而已。除了新浪等少数网站是用户在地址栏敲出来以外,有几个网站的访问者是输域名进来的呢?对一个站点来说,80-90%以上的用户都是通过链接和搜索引擎进来的。用flash做导航等于归隐山林。
网站介绍
和前面的理由类似,对搜索引擎来说,flash 就是一个黑洞,它们没办法知道你的网站是干什么的。漂亮的网站介绍动画只是你自己看着过瘾,有多少用户放着迪斯尼几千万美金做的电影不看而来“欣赏”您网站的动画设计呢?不管画面多么精美,一段时间之后,用户就会厌倦。
flash优化问题
国内大部分 flasher 可能都不知道 flash 中图片是可以压缩的,大部分人只是直接把photoshop中做好的图片导入flash,而不是直接在 flash 里画,矢量文件的尺寸要小得多。导入的时候,尽量在 ps 或者 fw 中压缩好再导入。导出的时候,可以根据视觉效果选择 png 压缩或者 jpg压缩。(这就是为什么有些flash 看起来脏兮兮的原因!)而另外一些人正好相反,类似阴影这些矢量图型的噩梦也直接在 flash 里生成,为了这一个flash,用户可怜的cpu直接被占满。另外,flash 的面积对 cpu 的影响也很大,因为矢量软件是实时计算出来的图型,然后再画出来的。
html 中如何嵌入flash
很遗憾。直接嵌入Flash还要保证 跨浏览器和W3C 的网页验证几乎是不可能的。你应该使用 swfobject,用javascript 的办法嵌入flash。这样做还有另外一个好处就是,你可以让flash最后下载,而不是让用户绝望地等待。swfobject 还可以方便地在 javascript 和 flash 直接传递参数。
flash透明的问题
flash player 的背景透明(wmode=transparency)在 *nix 的世界是无效的。(我还不能确认最新的 flash player 能不能在 linux 下透明,至少2009年底以前不行)何况即使是透明,有些时候也会盖住下面的 htm,从而使用户无法点击下面的 html 链接。
flash没有前进后退功能
和使用 windows 的感受一样,你可能隐约知道发生了什么,但根本不知道为什么,以及怎么发生的这一切。
flash更像一个广告
动来动去的东西总是能引起用户的注意,但如果全屏幕都在闪来闪去,那还有什么意义?
flash中的字体问题
默认flash 是把文字输出成 类似 postscript 这样的矢量图型的,文字较大的时候,加入防锯齿(anti-alias)是件好事,会让字体边缘看起来更柔和。但12px的时候就会显得很脏。这时候,你应该选择 使用系统字体,好处就是小字体很清楚,坏处就是,非中文 windows 的系统是没有 宋体、黑体和雅黑 这些字体的,也就是说非中文系统看不到字,而*nix世界的字体看起来也怪怪的。
flash会破坏站点代码结构以及不那么的SEO
这和整个网页都是图片的道理类似。
flash的修改是件麻烦事
和 html css javascript php 等文本代码不同,.swf 是不能直接修改的,任何改动都必须在原 .fla 中进行。这就是我们每次把 fla 文件也上传到客户网站上的原因,时间一久,谁还记得那些源文件在哪里?即便如此,修改也就是一件很花时间的事情。
flash的下载速度
flash 一般都不会太小,对低带宽的用户来说,你连选择的权利都没给。
小结
我们不反对用Flash,我们只是希望能够在恰当的时机去使用以及正确地使用。比如小广告、企业形象宣传、统计数据等等。多一些 action script 少一些莫名其妙、幼稚地闪来闪去,我相信,被Adobe 收购的 flash 还能走很远。




