S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JS Get Flash Version

Posted on 2009-09-06 15:04 S.l.e!ep.¢% 阅读(383) 评论(0)  编辑 收藏 引用 所属分类: HTML

<html>
<script language="javascript" type="text/javascript">
if(typeof deconcept=="undefined")
{
    var deconcept=new Object();
}

if( typeof deconcept.util=="undefined" )
{
    deconcept.util=new Object();
}

if(typeof deconcept.SWFObjectUtil=="undefined")
{
    deconcept.SWFObjectUtil=new Object();
}

deconcept.SWFObject = function(_1,id,w,h,_5,c,_7,_8,_9,_a)
{
    if(!document.getElementById)
    {   
        return;
    }
   
    this.DETECT_KEY = _a?_a:"detectflash";
    this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
    this.params = new Object();
    this.variables = new Object();
    this.attributes=new Array();
   
    if(_1)
    {
        this.setAttribute("swf",_1);
    }

    if(id)
    {
        this.setAttribute("id",id);
    }

    if(w)
    {
        this.setAttribute("width",w);
    }

    if(h)
    {
        this.setAttribute("height",h);
    }

    if(_5)
    {
        this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));
    }

    this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
   
    if(!window.opera && document.all && this.installedVer.major>7)
    {
        deconcept.SWFObject.doPrepUnload=true;
    }

    if(c)
    {
        this.addParam("bgcolor",c);
    }

    var q=_7?_7:"high";
    this.addParam("quality",q);
    this.setAttribute("useExpressInstall", false);
    this.setAttribute("doExpressInstall", false);
    var _c=(_8)?_8:window.location;
    this.setAttribute("xiRedirectUrl",_c);
    this.setAttribute("redirectUrl","");
  
    if(_9)
    {
        this.setAttribute("redirectUrl",_9);
    }
};

deconcept.SWFObject.prototype =
{
    useExpressInstall:function(_d)
    {
        this.xiSWFPath=!_d?"expressinstall.swf":_d;
        this.setAttribute("useExpressInstall",true);
    },
   
    setAttribute:function(_e,_f)
    {
        this.attributes[_e]=_f;
    },

    getAttribute:function(_10)
    {
        return this.attributes[_10];
    },

    addParam:function(_11,_12)
    {
        this.params[_11]=_12;
    },

    getParams:function()
    {
        return this.params;
    },

    addVariable:function(_13,_14)
    {
        this.variables[_13]=_14;
    },

    getVariable:function(_15)
    {
        return this.variables[_15];
    },

    getVariables:function()
    {
        return this.variables;
    },

    getVariablePairs:function()
    {
        var _16 = new Array();
        var key;
        var _18 = this.getVariables();
        for(key in _18)
        {
            _16[_16.length]=key+"="+_18[key];
        }

        return _16;
    },

    getSWFHTML:function()
    {
        var _19 = "";
        if(navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length)
        {
            if(this.getAttribute("doExpressInstall"))
            {
                this.addVariable("MMplayerType","PlugIn");
                this.setAttribute("swf", this.xiSWFPath);
            }
          
            _19 = "<embed type=\"application/x-shockwave-flash\" src=\" ";
            _19 += this.getAttribute("swf") + "\" width=\""
            _19 += this.getAttribute("width") + "\" height=\""
            _19 += this.getAttribute ("height") + "\" style=\""
            _19 += this.getAttribute("style")+"\"";
            _19 += " id=\"" + this.getAttribute("id") + "\" name=\"" + this.getAttribute("id") + "\" ";
           
            var _1a = this.getParams();
            for(var key in _1a)
            {
                _19 += [key] + "=\"" + _1a[key] + "\" ";
            }

            var _1c = this.getVariablePairs().join("&");
           
            if(_1c.length > 0)
            {
                _19 += "flashvars=\"" + _1c + "\"";
            }

            _19 += "/>";
      }
      else
      {
            if( this.getAttribute("doExpressInstall") )
            {
                this.addVariable("MMplayerType","ActiveX");
                this.setAttribute("swf",this.xiSWFPath);
            }

            _19 =  "<object id=\"" + this.getAttribute("id") + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""
            _19 += this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\">";
            _19 += "<param name=\"movie\" value=\"" + this.getAttribute("swf") + "\" />";

            var _1d = this.getParams();
            for(var key in _1d)
            {
                _19 += "<param name=\"" + key + "\" value=\"" + _1d[key] + "\" />";
            }

            var _1f = this.getVariablePairs().join("&");
            if(_1f.length > 0)
            {
                _19 += "<param name=\"flashvars\" value=\"" + _1f + "\" />";
            }

            _19 += "</object>";
     }
     
     return _19;
},

write:function(_20)
{
     if( this.getAttribute("useExpressInstall") )
     {
          var _21 = new deconcept.PlayerVersion([6,0,65]);
          if( this.installedVer.versionIsValid(_21) && !this.installedVer.versionIsValid(this.getAttribute("version")) )
          {
              this.setAttribute("doExpressInstall", true);
              this.addVariable("MMredirectURL", escape(this.getAttribute("xiRedirectUrl")));
              document.title = document.title.slice(0,47) + " - Flash Player Installation";
              this.addVariable("MMdoctitle",document.title);
          }
      }

      if( this.skipDetect || this.getAttribute("doExpressInstall") || this.installedVer.versionIsValid(this.getAttribute("version")) )
      {
          var n = (typeof _20=="string")?document.getElementById(_20):_20;
          n.innerHTML = this.getSWFHTML();
          return true;
      }
      else
      {
          if(this.getAttribute("redirectUrl") != "")
          {
              document.location.replace(this.getAttribute("redirectUrl"));
          }
      }
     
      return false;
}
};

deconcept.SWFObjectUtil.getPlayerVersion = function()
{
    var _23 = new deconcept.PlayerVersion([0,0,0]);
    if( navigator.plugins && navigator.mimeTypes.length )
    {
        var x = navigator.plugins["Shockwave Flash"];
        if( x && x.description )
        {
            _23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));
        }
    }
    else
    {
        if( navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0 )
        {
            var axo=1;
            var _26=3;
            while(axo)
            {
                try
                {
                    _26++;
                    axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + _26);
                    _23=new deconcept.PlayerVersion([_26,0,0]);
                }
                catch(e)
                {
                    axo=null;
                }
            }
        }
        else
        {
            try
            {
                var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
            }
            catch(e)
            {
                try
                {
                    var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
                    _23 = new deconcept.PlayerVersion([6,0,21]);
                    axo.AllowScriptAccess = "always";
                }
                catch(e)
                {
                    if(_23.major == 6)
                    {
                        return _23;
                    }
                }
               
                try
                {
                    axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                }
                catch(e)
                {}
           }
          
           if( axo!=null )
           {
               _23 = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
           }
     }
}

return _23;
};

deconcept.PlayerVersion = function(_29)
{
    this.major=_29[0]!=null?parseInt(_29[0]):0;
    this.minor=_29[1]!=null?parseInt(_29[1]):0;
    this.rev=_29[2]!=null?parseInt(_29[2]):0;};

    deconcept.PlayerVersion.prototype.versionIsValid = function(fv)
    {
        if(this.major<fv.major)
        {
            return false;
        }

        if(this.major>fv.major)
        {
            return true;
        }

        if(this.minor<fv.minor)
        {
            return false;
        }
       
        if(this.minor>fv.minor)
        {
            return true;
        }

        if(this.rev<fv.rev)
        {
            return false;
        }
       
        return true;
    };

deconcept.util = {
getRequestParameter:function(_2b)
{
    var q=document.location.search||document.location.hash;
    if(_2b==null)
    {
        return q;}
        if(q)
        {
            var _2d=q.substring(1).split("&");
            for(var i=0;i<_2d.length;i++)
            {
                if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b)
                {
                    return _2d[i].substring((_2d[i].indexOf("=")+1));
            }
        }
    }
    
    return "";
}
};

deconcept.SWFObjectUtil.cleanupSWFs = function() {
var _2f=document.getElementsByTagName("OBJECT");
for(var i=_2f.length-1;i>=0;i--)
{
    _2f[i].style.display = "none";
    for(var x in _2f[i])
    {
        if(typeof _2f[i][x] == "function")
        {
            _2f[i][x] = function(){};
        }
    }
}
};

if(deconcept.SWFObject.doPrepUnload)
{
    if(!deconcept.unloadSet)
    {
        deconcept.SWFObjectUtil.prepUnload = function()
        {
            __flash_unloadHandler = function(){};
            __flash_savedUnloadHandler=function(){};
            window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);
        };

        window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);
        deconcept.unloadSet=true;
    }
}

if(!document.getElementById&&document.all)
{
    document.getElementById=function(id)
    {
        return document.all[id];
    };

}

var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject;
var SWFObject=deconcept.SWFObject;

</script>
<script type="text/javascript">
    // <![CDATA[   
         try {
              var version = deconcept.SWFObjectUtil.getPlayerVersion();
              abc = " - detected flash " + version.major+"."+version.minor+"."+version.rev;
alert(abc);
         } catch( e ){}
    // ]]>
</script>

</html>


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理