FLASH与JS通信简单实例

一个页面加载一个FLASH。点击页面中的按钮。加载让FLASH加载按钮对应的FLASH:

AC_RunActiveContent.js
//v1.7
//FlashPlayerVersionDetection
//DetectClientBrowsertype
//Copyright2005-2007AdobeSystemsIncorporated.Allrightsreserved.
varisIE=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;
varisWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)?true:false;
varisOpera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;

functionControlVersion()
{
varversion;
varaxo;
vare;

//NOTE:newActiveXObject(strFoo)throwsanexceptionifstrFooisn'tintheregistry

try{
//versionwillbesetfor7.Xorgreaterplayers
axo=newActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
version=axo.GetVariable("$version");
}catch(e){
}

if(!version)
{
try{
//versionwillbesetfor6.Xplayersonly
axo=newActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

//installedplayerissomerevisionof6.0
//GetVariable("$version")crashesforversions6.0.22through6.0.29,
//sowehavetobecareful.

//defaulttothefirstpublicversion
version="WIN6,0,21,0";

//throwsifAllowScripAccessdoesnotexist(introducedin6.0r47)
axo.AllowScriptAccess="always";

//safetocallfor6.0r47orgreater
version=axo.GetVariable("$version");

}catch(e){
}
}

if(!version)
{
try{
//versionwillbesetfor4.Xor5.Xplayer
axo=newActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version=axo.GetVariable("$version");
}catch(e){
}
}

if(!version)
{
try{
//versionwillbesetfor3.Xplayer
axo=newActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version="WIN3,0,18,0";
}catch(e){
}
}

if(!version)
{
try{
//versionwillbesetfor2.Xplayer
axo=newActiveXObject("ShockwaveFlash.ShockwaveFlash");
version="WIN2,0,0,11";
}catch(e){
version=-1;
}
}

returnversion;
}

//JavaScripthelperrequiredtodetectFlashPlayerPlugInversioninformation
functionGetSwfVer(){
//NS/Operaversion>=3checkforFlashplugininpluginarray
varflashVer=-1;

if(navigator.plugins!=null&&navigator.plugins.length>0){
if(navigator.plugins["ShockwaveFlash2.0"]||navigator.plugins["ShockwaveFlash"]){
varswVer2=navigator.plugins["ShockwaveFlash2.0"]?"2.0":"";
varflashDescription=navigator.plugins["ShockwaveFlash"+swVer2].description;
vardescArray=flashDescription.split("");
vartempArrayMajor=descArray[2].split(".");
varversionMajor=tempArrayMajor[0];
varversionMinor=tempArrayMajor[1];
varversionRevision=descArray[3];
if(versionRevision==""){
versionRevision=descArray[4];
}
if(versionRevision[0]=="d"){
versionRevision=versionRevision.substring(1);
}elseif(versionRevision[0]=="r"){
versionRevision=versionRevision.substring(1);
if(versionRevision.indexOf("d")>0){
versionRevision=versionRevision.substring(0,versionRevision.indexOf("d"));
}
}
varflashVer=versionMajor+"."+versionMinor+"."+versionRevision;
}
}
//MSN/WebTV2.6supportsFlash4
elseif(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!=-1)flashVer=4;
//WebTV2.5supportsFlash3
elseif(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!=-1)flashVer=3;
//olderWebTVsupportsFlash2
elseif(navigator.userAgent.toLowerCase().indexOf("webtv")!=-1)flashVer=2;
elseif(isIE&&isWin&&!isOpera){
flashVer=ControlVersion();
}
returnflashVer;
}

//WhencalledwithreqMajorVer,reqMinorVer,reqRevisionreturnstrueifthatversionorgreaterisavailable
functionDetectFlashVer(reqMajorVer,reqMinorVer,reqRevision)
{
versionStr=GetSwfVer();
if(versionStr==-1){
returnfalse;
}elseif(versionStr!=0){
if(isIE&&isWin&&!isOpera){
//Given"WIN2,0,0,11"
tempArray=versionStr.split("");//["WIN","2,0,0,11"]
tempString=tempArray[1];//"2,0,0,11"
versionArray=tempString.split(",");//['2','0','0','11']
}else{
versionArray=versionStr.split(".");
}
varversionMajor=versionArray[0];
varversionMinor=versionArray[1];
varversionRevision=versionArray[2];

//isthemajor.revision>=requestedmajor.revisionANDtheminorversion>=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;
}
}

functionAC_AddExtension(src,ext)
{
if(src.indexOf('?')!=-1)
returnsrc.replace(/\?/,ext+'?');
else
returnsrc+ext;
}

functionAC_Generateobj(objAttrs,params,embedAttrs)
{
varstr='';
if(isIE&&isWin&&!isOpera)
{
str+='<object';
for(variinobjAttrs)
{
str+=i+'="'+objAttrs[i]+'"';
}
str+='>';
for(variinparams)
{
str+='<paramname="'+i+'"value="'+params[i]+'"/>';
}
str+='</object>';
}
else
{
str+='<embed';
for(variinembedAttrs)
{
str+=i+'="'+embedAttrs[i]+'"';
}
str+='></embed>';
}

document.write(str);
}

functionAC_FL_RunContent(){
varret=
AC_GetArgs
(arguments,".swf","movie","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
,"application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs,ret.params,ret.embedAttrs);
}

functionAC_SW_RunContent(){
varret=
AC_GetArgs
(arguments,".dcr","src","clsid:166B1BCA-3F9C-11CF-8075-444553540000"
,null
);
AC_Generateobj(ret.objAttrs,ret.params,ret.embedAttrs);
}

functionAC_GetArgs(args,ext,srcParamName,classid,mimeType){
varret=newObject();
ret.embedAttrs=newObject();
ret.params=newObject();
ret.objAttrs=newObject();
for(vari=0;i<args.length;i=i+2){
varcurrArg=args[i].toLowerCase();

switch(currArg){
case"classid":
break;
case"pluginspage":
ret.embedAttrs[args[i]]=args[i+1];
break;
case"src":
case"movie":
args[i+1]=AC_AddExtension(args[i+1],ext);
ret.embedAttrs["src"]=args[i+1];
ret.params[srcParamName]=args[i+1];
break;
case"onafterupdate":
case"onbeforeupdate":
case"onblur":
case"oncellchange":
case"onclick":
case"ondblclick":
case"ondrag":
case"ondragend":
case"ondragenter":
case"ondragleave":
case"ondragover":
case"ondrop":
case"onfinish":
case"onfocus":
case"onhelp":
case"onmousedown":
case"onmouseup":
case"onmouseover":
case"onmousemove":
case"onmouseout":
case"onkeypress":
case"onkeydown":
case"onkeyup":
case"onload":
case"onlosecapture":
case"onpropertychange":
case"onreadystatechange":
case"onrowsdelete":
case"onrowenter":
case"onrowexit":
case"onrowsinserted":
case"onstart":
case"onscroll":
case"onbeforeeditfocus":
case"onactivate":
case"onbeforedeactivate":
case"ondeactivate":
case"type":
case"codebase":
case"id":
ret.objAttrs[args[i]]=args[i+1];
break;
case"width":
case"height":
case"align":
case"vspace":
case"hspace":
case"class":
case"title":
case"accesskey":
case"name":
case"tabindex":
ret.embedAttrs[args[i]]=ret.objAttrs[args[i]]=args[i+1];
break;
default:
ret.embedAttrs[args[i]]=ret.params[args[i]]=args[i+1];
}
}
ret.objAttrs["classid"]=classid;
if(mimeType)ret.embedAttrs["type"]=mimeType;
returnret;
}


text.html

<html>

<head>
<metahttp-equiv="Content-Language"content="zh-cn">
<scriptlanguage="javascript"src="AC_RunActiveContent.js"></script>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>1</title>
</head>

<body>

<scriptlanguage="javascript">
for(vari=1;i<=8;i++){
document.write("<p><ahref=\"#\"οnclick=\"loadSWF("+i+");\">"+i+"</a></p>");
}
functionloadSWF(swfindex){
player.loadSWF(swfindex);
}
</script>

<scriptlanguage="javascript">
if(AC_FL_RunContent==0){
alert("此页需要AC_RunActiveContent.js");
}else{
AC_FL_RunContent(
'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
'width','800',
'height','500',
'src','index',
'quality','high',
'pluginspage','http://www.macromedia.com/go/getflashplayer',
'align','middle',
'play','true',
'loop','true',
'scale','showall',
'wmode','transparent',
'devicefont','false',
'id','player',
'bgcolor','#ffffff',
'name','player',
'menu','true',
'allowFullScreen','false',
'allowScriptAccess','sameDomain',
'movie','index',
'salign',''
);//endACcode
}
</script>

</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值