icreate pdx16-virtualrouter
2023年4月4日发(作者:联众世界下载)
1
Flash®Player检测工具
修订本1.5
作者:MichaelWilliams(2006.5)
翻译:赵殿有(2010.12)
翻译不准确的请发邮件到zhaody901@请附上更正过后的翻译
2
Copyright©2005-2006AdobeMacromediaSoftware,htsreserved.
TheinformationcontainedinthisdocumentrepresentsthecurrentviewofAdobeMacromedia
Software,LLC(Adobe)eAdobemust
respondtochangingmarketconditions,itshouldnotbeinterpretedtobeacommitmentonthepart
ofAdobe,andAdobecannotguaranteetheaccuracyofanyinformationpresentedafterthedateof
publication.
AKESNOWARRANTIES,EXPRESSOR
IMPLIED,INTHISDOCUMENT.
Adobemayhavepatents,patentapplications,trademark,copyrightorotherintellectualproperty
asexpresslyprovidedinanywritten
licenseagreementfromAdobe,thefurnishingofthisdocumentdoesnotgiveyouanylicensetothese
patents,trademarks,copyrightsorotherintellectualproperty.
Adobe,Macromedia,andFlashareeithertrademarksorregisteredtrademarksofAdobeMacromedia
Software,nitedStatesand/esofactualcompaniesand
productsmentionedhereinmaybethetrademarksoftheirrespectiveowners.
AdobeMacromediaSoftware,LLC
601TownsendStreet
SanFrancisco,CA94103
415–832–2000
3
目录
目录......................................................................................................................................................................................3
介绍......................................................................................................................................................................................4
检测FlashPlayer..................................................................................................................................................................4
检测和安装技术概括...........................................................................................................................................................5
选择FlashPlayer检测方法........................................................................................................................................5
初始化FlashPlayer的安装或更新.............................................................................................................................6
DetectionKit的内容....................................................................................................................................................6
基于AS的检测方法例子文件............................................................................................................................7
基于客户端的检测方法文件...............................................................................................................................7
FlashPlayerExpressInstall示例文件.................................................................................................................8
使用客户端脚本检测FlashPlayer版本.............................................................................................................................8
使用JavaScript检测FlashPlayer的版本..................................................................................................................9
把他们放在一起.........................................................................................................................................................10
使用ActionScript检测FlashPlayer版本........................................................................................................................12
在FlashPlayer3和更早版本中升级........................................................................................................................14
上传Flash检测工具到网站服务器..........................................................................................................................14
使用服务器端代码检测FlashPlayer版本.......................................................................................................................14
服务器端检测重点.....................................................................................................................................................15
使用ColdFusion检测FlashPlayer..........................................................................................................................15
使用PHP检测FlashPlayer.......................................................................................................................................15
安装或者更新FlashPlayer................................................................................................................................................16
使用FlashPlayerExpressInstall...............................................................................................................................16
ExpressInstall文件...........................................................................................................................................17
自定义ExpressInstall...............................................................................................................................................18
结尾....................................................................................................................................................................................19
版本历史.............................................................................................................................................................................19
BugsFixed..................................................................................................................................................................19
4
介绍
Web技术发展的十分迅猛.开发者需要了解哪些他们最近在使用哪些工具和开发者的程序进行交互.比如说
AdobeFlash®Player,开发者使用最新的Flash特性必须保证他们的用户也必须安装了正确的版本.本文提供了
如下的章节帮助开发者检测已经安装的FlashPlayer的版本和初始化升级的方法:
检测FlashPlayer为了检测用户的FlashPlayer版本你需要什么并且决定这个版本是否能够展现你的
Flash内容
检测和安装技术概括不同的FlashPlayer检测和安装的方法和检测工具(DetectionKit)的概括.
使用客户端脚本检测FlashPlayer版本使用客户端脚本检测运行环境并且提供脚本
使用ActionScript检测FlashPlayer版本使用ActionScript脚本检测运行环境并提供脚本
使用服务器端代码检测FlashPlayer版本使用服务器端代码检测运行环境并提供PHP脚本和ColdFusion
脚本
安装或更新FlashPlayer如果FlashPlayer没有安装在用户的机器上,或者已经安装了但是不支持当前的
Flash文档,你可以初始化并安装最新的FlashPlayer版本
检测FlashPlayer
Flash内容-无论游戏交互,广告,灵活的信息公告,视频编程或者是运行在FlashPlayer上的商业应用.你的flash
文档需要用户计算机上安装了正确的FlashPlayer版本.即便在各种计算平台和用户使用浏览器访问网页和你的
Flash内容,您可以检测FlashPlayer的存在或它的版本信息,并在大多数情况下在用户计算机启动一个安装或升
级FlashPlayer.
然而,在部署Flash文档的时候检测所有可能的操作系统和浏览器兼容将是一个任务.Adobe已经集合了最佳的解
决方案和模板帮助你部署各种环境.所有你期待的检测过程能够满足你以下的需求.
各种检测应该运行在所有的操作系统和所有的支持Flash的浏览器中.下边的列表有支持的系统和浏览
器:Http:///products/flash/flashpro/productinfo/systemreqs/.
能够检测FlashPlayer所运行的主要版本和最小版本.例如,FlashPlayer6在它存在的时候修订过很多
次,为了指定这些特定的版本.检测方法必须能够准确检查出用户计算机上安装的版本和能够正确运行
Flash内容的版本.
能够检测未来的FlashPlayer版本,从而不需要对检测方法做任何的修改
在不打扰用户的情况下静默安装最新的FlashPlayer.
许多的检测方法不符合其中的一些或者某个要求,并且网站通常弄糊涂访问者不能访问这部分内容或者不理解那
个FlashPlayer的版本是必须的.检测工具(FlashDetectionKit)检测工具已经设计好了来帮助你确定安装在终
5
端用户上的Flash版本并且能够在不打扰用户的模式下更新和安装最新版本,
除了上边介绍的FlashPlayer检测技术,作为一个兼容性措施,你可以提供一个介绍页面,这个页面包含版本信息并
且包含一个链接到FlashPlayer的下载地址.
本站点需要FlashPlayer7或者更高版本
以下是FlashPlayer下载地址:
/go/getflashplayer/
检测和安装技术概括
Flash内容以多种方式嵌入到网站中.网站更多的构架和配置需要不同的方法来检测用户需要访问的Flash内容的
播放器版本.一种方法不能够适应所有的网站,但是上边总是会有种方法来适应大部分的网站.一旦确定了播放器
和他的版本,你可以根据经验告知用户最合适与网站的设计的解决办法,是否提示用户安装或者显示内容.下边几
点检测工具帮助你怎么做
选择FlashPlayer检测方法
检测FlashPlayer版本,你选择或者自定义一个检测方法.确保回顾到上边提到的每个方法,下边让我们看看他们的
优缺点:
客户端脚本检测这种方法使用JavaScript来检测浏览器插件或者ActiveX插件.并且提供了显示Flash内容
或者安装正确版本的思路.
当以下情况的时候使用基于脚本的检测方法:
基于脚本的检测方法用在现代浏览器或者系统中,基于统计,有98%的能够上网的计算机已经装备上了
现代浏览器或者系统.而且98%的联网计算机都具备FlashPlayer5或者更高版本.
如果你想在浏览器中基于用户电脑的配置显示替代文本,基于脚本的检测能够确定版本和配置信息,这是
其他方法不能完成的
以下情况避免使用这种方法:
虽然总体可靠,基于脚本的检测方法在浏览器禁用脚本的时候,这种方法会失效.当然这种几率很小,你可
以使用
虽然越来越少见,有些老的浏览器不再支持脚本(例如IE4.0或者更早的版本).如果老版浏览器对于你的
内容显示很重要,你需要检测浏览器版本并且根据浏览器的能力显示合适的替代文本
基于AS的检测方法这种方法使用一个SWF文件来检测哪个播放器被安装并且引导用户到FlashPlayer的
安装部分如果FlashPlayer需要更新
6
使用AS检测方法:
用户必须安装了FlashPlayer4.0r11版本或者更高.
浏览器重定向在你的网站上不存在问题.
避免使用AS检测方法
FlashPlayer没有安装在用户机器上
如果浏览器重定向出现错误(ex:不能定向用户到FlashPlayer安装界面)
当你喜欢显示替代内容而不是希望用户到一个安装FlashPlayer的界面.
服务器端检测这种方法创建了一个服务器端的应用来检测Flash当前安装了什么版本.
使用服务器端的方法检测
用户必须安装FlashPlayer6.0r65版本以上
你想作为动态网站的一个部分,服务器端实现
避免使用服务器端实现
你不能访问服务器端脚本
用户安装的FlashPlayer版本低于6.0r65
作为以上技术的结合实现.你可以使用两种或者以上的技术开发你自己的解决方案用来给用户更合适与你网站的
文本.
记住,你使用成功的检测方法基于你网站的配置,你的目标用户,和目标用户的环境.在部署检测的时候回顾上边每
个小节的建议来部署.
初始化FlashPlayer的安装或更新
一旦你决定了用户时候是否安装了FlashPlayer还有版本的信息.你已经有了显示替代文本的的信息,引导用户到
FlashPlayer下载地址或者通过播放器产品安装方法来安装或者更新FlashPlayer,像下边介绍的安装或者更新
FlashPlayer的章节.
在终端用户电脑上初始化安装信息,你可以使用Adobe的FlashPlayerExpressInstall.这种方法,怎么去设置在
自定义ExpressInstall章节,这些文件的位置在ExpressInstall章节介绍.
DetectionKit的内容
在浏览了本文不同的检测方法之后,应该开始熟悉DetectionKitZIP文件中的内容了:
本文的一份拷贝在根目录下,介绍了需求,方法和检测和更新终端用户FlashPlayer版本的规则.阅读这
篇文章来知道,选择,和自定义一个检测方法.
基于AS的检测方法例子文件在ActionScriptBasedDetection文件夹下边.使用这些文件--随着介绍
使用Actionscript来检测FlashPlayer版本章节接下来--检测终端用户的FlashPlayer版本,和检测版
7
本成功之后显示Flash内容,或者提示用户安装正确的FlashPlayer版本.
客户端检测方法的例子文件.在Client-SideDetection文件夹下边,使用这些文件--在使用客户端脚本
来检测FlashPlayer版本章节,下边--检测用户的FlashPlayer作为ActiveX插件或者浏览器插件,并
且显示Flash内容如果检测正确的版本.或提示用户安装FlashPlayer的正确版本.
ExpressInstall文件在根目录文件中.使用介绍在安装和更新FlashPlayer章节,然后能够检测用户的
FlashPlayer版本,初始化用户的安装程序,在成功安装之后返回站点来查看内容和合适的播放器版本.
基于AS的检测方法例子文件
在ActionScriptDetection目录下,有如下的文件:
文件/目录名介绍
actionscript_ml示例,包含SWF来完成基于As的检测方法
flash_AS_文件示例,包含完成检测基于AS检测方法的文件
flash_AS_示例的源文件;调用AS文件的同名文件来检测基于AS的检测方法
flash_AS_文件示例;包含AS逻辑,用来初始化基于AS检测方法
flash_content/目录示例Flash内容;包含你想提供给用户的例子内容,如果他安装了正确的
FlashPlayer版本
upgrade_flash/目录更新文件示例;包含用来提示用户升级到最新版本的例子
基于客户端的检测方法文件
在Client-SideDetection目录下,有如下的文件:
文件/目录名介绍
示例SWF文件,用来检测客户端检测的完成
示例Html文件,包含检测客户端FlashPlayer检测的JavaScript的脚本,
额外的文件通过加载AC_得到
AC_源文件;在文件中被加载,用来检测和嵌入
Flash.
8
FlashPlayerExpressInstall示例文件
在ExpressInstallation目录下,有如下的文件:
文件/目录名介绍
用来检测ExpressInstall安装完成的进程
文件示例,包含了快速安装的执行逻辑
示例的源文件,调用AS的同名文件用来完成快速安装的过程
示例html文件,包含完成快速安装过程的JavaScript逻辑代码
AC_Script源文件,调用的用来检测和嵌入
FlashPlayer的JavaScript文件.
示例SWF文件,包含开始快速安装过程的AS逻辑文件
示例ActionScript文件,用户没有通过快速安装安装新版的FlashPlayer
调用回调函数
使用客户端脚本检测FlashPlayer版本
最常用检测Flash版本的方法是使用JavaScript方法来检测是否存在一个浏览器插件或者是ActiveX插件.你使
用过的这一类型的脚本依赖于终端用户使用的浏览web内容的浏览器.因为FlashPlayer存在一个浏览器插件,
另外还有一个ActiveX控件,这是JavaScript建的合适播放器的一个惯例的方法.ActiveX控件安装仅仅是针对IE
浏览器,其他的浏览器像Netscape,Firefox,Safari,Opera,Chrome支持浏览器插件.
客户端FlashPlayer脚本检测方法的说明文件在中
使用这种方法,你开始建立检测ActiveX控件和插件的脚本检测函数.这两个函数被其他函数调用然后返回用户安
装的FlashPlayer的版本数字.这函数在windows下的IE浏览器中叫做ActiveX检测函数,其他的叫做JavaScript
检测函数.
依据两个得到的版本号,客户端脚本进行一下步骤:
如果得到的版本号指出已经安装了正确的版本,
Flash文档将会呈现给用户.
如果用户安装了一个老版本的FlashPlayer,或者没有FlashPlayer被检测到,将会显示替代文本,包含一
个链接到Adobe的安装FlashPlayer的页面.
9
下节讨论部分客户端脚本的细节.
使用JavaScript检测FlashPlayer的版本
检测FlashPlayer的存在和他的版本好需要一些额外的针对浏览器的脚本(比如说Netscape的插件API).对于这
些浏览器你不仅要找出是否安装了FlashPlayer和他们的版本好,也要知道用户的计算机上安装了什么类型的浏
览器.
脚本使用一个函数GetSwfVer()搜索ActiveX空间和浏览器插件.对于ActiveX控件调用ControlVersion()函数.
它在Windows注册表中定位ActiveX空间对象"aveFlash",然后取回存储在播放器中
的全局变量$version的版本号的值.
axo=newActiveXObject("aveFlash.7");
version=iable("$version");
FlashPlayer版本4.0r11和以后的版本当请求变量$version的时候,将返回版本号和平台字符串.这需要你查询
完整的版本,他包含在操作系统,版本号,和最小的修订版信息.例如,你会取回一个像这样的字串"WIN6,0,65,0".在
这个例子中,用户的计算机有FlashPlayer6版本,修订版本号是65,这个版本运行在Windows操作系统上.
GetSwfVer()函数的返回值的一部分确定了FlashPlayer的版本的信息和播放器的存在.支持这样的方法的有
Netscape,Firefox,Safari,Opera,Chrome和其他支持NetscapeAPI的的方法的浏览器.他提供了一种询问浏览
器脚本的方法.
varswVer2=s["ShockwaveFlash2.0"]?"2.0":"";
varflashDescription=s["ShockwaveFlash"+swVer2].description;
完整的取回FlashPlayer版本的脚本在AC_文件中.下边包含了完整的脚本内容
注意:建立这个脚本,支持基于插件的浏览器和IE浏览器,一个特殊的情况在Opera浏览器中,虽然标识为Internet
Explorer自身,在8.01版本之前没有提供对ActiveX控件的支持。
//FlashPlayerVersionDetection-Rev1.5
//DetectClientBrowsertype
//Copyright2006AdobeSystems,htsreserved.
varisIE=(f("MSIE")!=-1)?true:false;
varisWin=(rCase().indexOf("win")!=-1)?true:false;
varisOpera=(f("Opera")!=-1)?true:false;
//JavaScripthelperrequiredtodetectFlashPlayerPlugInversioninformation
functionGetSwfVer(){
//NS/Operaversion>=3checkforFlashplugininpluginarray
varflashVer=-1;
if(s!=null&&>0){
if(s["ShockwaveFlash2.0"]||s["ShockwaveFlash"]){
10
varswVer2=s["ShockwaveFlash2.0"]?"2.0":"";
varflashDescription=s["ShockwaveFlash"+swVer2].description;
vardescArray=("");
vartempArrayMajor=descArray[2].split(".");
varversionMajor=tempArrayMajor[0];
varversionMinor=tempArrayMajor[1];
if(descArray[3]!=""){
tempArrayMinor=descArray[3].split("r");
}else{
tempArrayMinor=descArray[4].split("r");
}
varversionRevision=tempArrayMinor[1]>0?tempArrayMinor[1]:0;
varflashVer=versionMajor+"."+versionMinor+"."+versionRevision;
}
}
//MSN/WebTV2.6supportsFlash4
elseif(rCase().indexOf("webtv/2.6")!=-1)flashVer=4;
//WebTV2.5supportsFlash3
elseif(rCase().indexOf("webtv/2.5")!=-1)flashVer=3;
//olderWebTVsupportsFlash2
elseif(rCase().indexOf("webtv")!=-1)flashVer=2;
elseif(isIE&&isWin&&!isOpera){
flashVer=ControlVersion();
}
returnflashVer;
}
JavaScript的GetSwfVer()函数使用搜索s数组的方法查询ShockwaveFlash插件,这种方法
用在所有的支持Netscape插件的API浏览器中.如果FlashPlayer插件在数组中,他的版本信息存储在flashVer
变量中,并且返回调用的信息(查看下边的把他放在一起章节).不支持s数组的浏览器或者查询
的时候返回的值是-1,说明你必须安装最新版的FlashPlayer.
注意:IE4和更早的运行在MacOSclassic的不支持s数组.
把他们放在一起
现在你有方法来检测FlashPlayer并且返回ActiveX控件和跨平台的的插件的版本的信息,你需要在函数中整合
信息,使他能够用来能够表现给终端用户的信息.下边的脚本取回安装的FlashPlayer的版本信息并且对比你在文
本中给定的版本信息.
//WhencalledwithreqMajorVer,reqMinorVer,reqRevisionreturnstrueifthatversionorgreater
isavailable
functionDetectFlashVer(reqMajorVer,reqMinorVer,reqRevision)
11
{
versionStr=GetSwfVer();
if(versionStr==-1){
returnfalse;
}elseif(versionStr!=0){
if(isIE&&isWin&&!isOpera){
//Given"WIN2,0,0,11"
tempArray=("");//["WIN","2,0,0,11"]
tempString=tempArray[1];//"2,0,0,11"
versionArray=(",");//['2','0','0','11']
}else{
versionArray=(".");
}
varversionMajor=versionArray[0];
varversionMinor=versionArray[1];
varversionRevision=versionArray[2];
//on>=onANDtheminorversion>=requestedminor
if(versionMajor>parseFloat(reqMajorVer)){
returntrue;
}elseif(versionMajor==parseFloat(reqMajorVer)){
if(versionMinor>parseFloat(reqMinorVer))
returntrue;
elseif(versionMinor==parseFloat(reqMinorVer)){
if(versionRevision>=parseFloat(reqRevision))
returntrue;
}
}
returnfalse;
}
}
DetectFlashVer()函数接受如下的三个参数:reqMajorVer,reqMinorVer,andreqRevision.
这些值指定了显示Flash内容所需要的最低版本,比如需要检测版本FlashPlayer6.0r65,你可以如下调用
varhasReqestedVersion=DetectFlashVer(6,0,65);
DetectFlashVer()函数通过函数GetSwfVer()得到Flash的安装版本.GetSwfVer()函数指定了浏览器和操作系统,
然后使用合适的脚本有选择性的请求FlashPlayer的版本信息.返回的FlashPlayer版本信息和传递给
DetectFlashVer()的参数进行比较.用来检测指定的FlashPlayer版本是否安装.并且返回一个true/false的值.
12
如果检测的版本大于或者等于需要的显示Flash内容的版本.DetectFlashVer()返回true,Flash文档嵌入网页并
且显示Flash内容,否则的话,FlashPlayer需要的最低版本没有安装,显示替代文本或者安装最新版的Flash
Player.
下边脚本展示了怎样去嵌入SWF文件,如果脚本正确就嵌入SWF文件,否则话就安装或者显示提示文本
if(hasReqestedVersion){
//EMBEDtheSWF
}else{
//Instructtheusertoinstalltheplayer,startPlayerProductInstall,
//orshowalternatecontent
}
使用javaScript来向页面中写
Flash内容.
如果你喜欢引导用户取一个不同的包含Flash的页面,安装内容,或者替换文本,你可以根据文件自定义.
默认的例子需要你键入一系列的全局变量值来检测合适的版本,这些值是:
1.需要指定Flash内容运行时候的的主要的,最低的,修订版的版本信息.这在脚本开始的时候指定.下边的脚本定义
了FlashPlayer7.0r19
//Globals
//MajorversionofFlashrequired
varrequiredMajorVersion=7;
//MinorversionofFlashrequired
varrequiredMinorVersion=0;
//MinorversionofFlashrequired
varrequiredRevision=19;
2.替代文本在Flash没有正确安装的时候被显示出来,或者安装的版本不是你的Flash内容运行时候需要的,或者
浏览器脚本被禁用.在这种条件下,替代文本定义在alternateContent变量中,他包含在
标签中的
发布评论