页面加入FALSH代码

2007/11/20 20:03  |  分类:Xhtml

Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等。
讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了。

一、传统的方法。
这方法是使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。这种方法是 Macromedia 一直以来的官方方法,最大限度的保证了 Flash 的功能,没有兼容性问题。但是它现在不那么好用了:
[code]
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="550" height="400" id="Untitled-1" align="middle"> height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

[/code]
无法通过验证,由于为了兼容性而嵌入的 embed 标签是不符合 W3C 的规范的。当然,如果你不在乎什么规范不规范,另当别论。
微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。
没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框——这个框对很多用户来说是很恐怖的。
二、只用 object 的方法,这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
[code]

data="c.swf?path=movie.swf"
width="400" height="300"> value="c.swf?path=movie.swf" /> width="200" height="100" alt="" />

[/code]

这方法没 embed 了,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的:

需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。
同上面第二点,ActiveX的虚框问题。
继续同上没有版本检测
还是有少数用户代理(比如一些版本的 safari 和一些屏幕阅读器)不认这种方式,有 bug。

三、用JS嵌入的方法。
用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接写,这法子说实话不大好,感觉 hack 成分多了,有点为了验证而验证的意思,而且没有体现出什么 JS 的优势。我觉得一个好的 JS 嵌入脚本,在保证 Flash 应有功能的基础上,要发挥 JS 的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览 Flash 内容或禁用 JS 的时候应该如何处理的问题),要易于重复使用。
我知道的比较常见的 JS 嵌入方法有以下几个

SWFObject
UFO – Unobtrusive Flash Objects
Macomedia(现在是Adobe了..)提供的脚本[这里]和[这里]。
我 SWFObject 用的比较多,就挑它来说一些这种方法的优点:

IE中没有讨厌的虚框问题了。
提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。
易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。
可以通过验证——当然这个不是重点,只是顺带效果罢了。

四、我的结论。
现阶段用 JS 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。
但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,再者又已经有人写了很完善的嵌入脚本可以方面地下载使用(推荐 SWFObject),我们还有什么理由不用它呢?

SWFObject 那网页是英文的,这里写个简单的用法教程:
下载它的.js文件,在这里: http://blog.deconcept.com/swfobject/swfobject1-4.zip (如果链接失效可能是版本有更新,请用上面给出的地址去主页下载最新版本)
在你的 HTML 页面头部区嵌入这个脚本文件:
在你的 HTML 中写一个用来放 Flash 的容器,比如

,并随便给一个 id 比如 flashcontent。然后在里面放上你的替换内容。
这里放替换内容,用来在 Flash 无法显示时显示。

使用脚本替换这个内容:

这脚本可以写在 HTML 中也可以写在外部 .js 文件中。
OK

我把青春给了谁

2007/11/19 17:52  |  分类:Essay

黄昏中,残阳里,远处的大山后面半露的夕阳给大地铺上了一片金黄.
独自一个人走在城市郊区-那是我回“家”的路。大路上车流不熄,身边的人像倦鸟归巢一样形色匆匆,没有人注意我,同样我也不会注意他们。我看到也只有我看到路边的绿化带的狗尾巴草,已经被灰尘蒙蔽了颜色的它还在随风摇摆!是对我微笑还是对这个不平世俗的呐喊,我不知。可是当我低头帮它轻轻抚去那些灰尘,它竟然那么翠绿。我不忍心将他折断,我轻轻对他说话,我想他会明白,我所有的不开心都告诉了它,因为它会给我保守任何我不为人知的秘密!
 时间在我思绪里随意流逝。
 小白还是那样大不咧咧的睡觉,一点都不淑女,竟然放肆到四脚朝天。叮叮当当还好一些,可是也是那么懒洋洋的,可能它们太安于现状,无欲则无所求。或许这些是它们给我的某些启示,而我却不能从这凡尘俗事中解脱。当它们看见我回来,个个精神抖擞,我知道它们爱我,因为我用心去照顾它们。它们在我生活里已经是不可缺失的一部分了,就像过去的阿飞!虽然我道歉给阿飞已经很多次了,可是我知道我无法原谅自己对阿飞的那个错误!
 我把青春给了谁
 理想、现实、过去、未来,我得到的是我自己,我失去的或许已经被上天收回而后分发给了别人。我想象的自己却越来越不是自己。不要回忆,回忆让每个理性的人都遍遍的纠缠在那个无尽的黑洞里。梦境里,我像是一个幻化了恶魔之翼的天使,游走在黑夜里帮助那些黑色心情的你,或许不是你想要,而我毕竟不是天使!我该把自己的心放在胸膛还是拿在手上?
 岁月刀刀划在脸上,改变了容颜,不变的却是我的信念。
 我的心象是尘封了许久佳酿,偶然开盖,不能十里飘香却也让我身心陶醉,我爱这个我,虽然时常我会封闭折磨自己。可是虽有的经历造就了一个不能顶天立地却也正大光明的我。长大了,心却老了,就像每天下班时候指挥交通的那个大爷,一切都是慢慢悠悠。
 一个心里能装多少事呢,我也不知道,就知道记忆能让我憔悴也能让我快乐幸福!心情郁郁,时常在想,我把青春给了谁!?

情歌教父 (周传雄)

2007/11/19 17:33  |  分类:Life

一首首脍炙人口的情歌流传

情歌教父周传雄用歌声抚慰了你我心中曾经无法抹灭的情绪伤感

让我们懂得了快乐是可以练习的

一次次的音乐创作

是希望告诉所有的人们

你并不是独自面对孤单

周传雄用歌声陪伴著你我一起打开心门

多一点点想像的视野与明亮的心情

就能看见这世界上其实还有许多未知的美丽风光

我很喜欢他的歌曲,能唱出心里的那份情感~~

博客上线,写写心里的感觉~~

2007/11/19 15:04  |  分类:Essay

很久了都要搞一个博客的,一直没时间也没心思搞,今天费才传上来了。开心一下,其实这也该是一封感谢信更贴切些~~~
在这里我要谢谢大家对我的支持,QS和MJ,更重要是xx, 还有其他太多了,感谢3群里每一个兄弟姐妹。在学习路上你们给我了太多帮助了,我想说出好多感谢的话,但竟然我一时语塞。。。。。
这里已经好冷了,我虽然是生在北方,可是还是受不了寒冷的天气。在上出门时候树叶想下雨一样,可见萧瑟,还有嫩绿之叶被严霜折磨的像中了毒都低下头了。心里想着快进轻轨,这样就不会被这我不喜欢的地方的受不了的风折磨了。
我或许是真的已经老了,自己看看上面的文字都觉得是胡言乱语,实在组织不了语言了,或许最近思路不清晰了,又或许是。。。(奇异的想法)
少写点吧,还有事要忙,毕竟是在公司。

Pages: Prev 1 2 3 ...24 25 26 27 28 29 30 31 32