flash自适应浏览器大小

HTML:

<html debug="true">

<head>

<link rel="icon" href="/favicon.ico" mce_href="/favicon.ico" type="image/x-icon">

<link rel="shortcut icon" href="/favicon.ico" mce_href="/favicon.ico" type="image/x-icon">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>【暮光高地】37wan《神曲》双线109服</title>

<!--script type="text/javascript" src="scripts/firebug-lite.js"></script-->

<script type="text/javascript" src="scripts/jquery.js"></script>

<script type="text/javascript" src="scripts/sniffer.js"></script>

<script type="text/javascript" src="scripts/swfobject.js"></script> 

<script type="text/javascript" src="scripts/swf.js"></script>

<script type="text/javascript" src="scripts/shenqu.js"></script> 

<style> 

        body,html

        {

            margin: 0px auto;

            padding: 0px; 

            background-position:center center;

            overflow-x:hidden;

            font-size:14px;

            color:#FF0000;

            text-align:center;

        }

        #wrap { text-align:left; margin:0 auto; }

</style> 

</head>



<body scroll="no"  bgcolor="#000000" onLoad="initSwf();checkScreen();"  style="margin:0px;padding:0px;" >

    <div id="Main" name="Main" style="width:100%;height:100%;" >

        <div id="MainGame" name="MainGame" style="background:url(framebg02.jpg) center no-repeat;height=100%;width:100%;"/>

    </div>

</body>

</html>

js:

View Code
var bannedFlash = ['10,2,152,26'];
//如果用户没安装flash,跳转到更新页面提示用户安装
if(!hasFlash())
{

    window.location.href="UpdateFlash.html";
}


if(getSite().indexOf("duowan_")!=-1)//针对多玩屏蔽js错误
{
    window.onerror=function()
    {
        return true;
    }
}

function getParameter(name){
    var params = location.search.replace('?','').split('&');
    for(var i = 0; i < params.length; ++i){
        if(params[i].split("=")[0].toLocaleLowerCase() == name){
            return params[i].split("=")[1];
        }
    }
}

function CheckFlashVersion(v){
    //alert("banedflash:"+bannedFlash);
    //old Logic
    //for(var i = 0; i < bannedFlash.length; ++i){
        //if(bannedFlash[i] == v){
            //return -1;
        //}
    //}
    //new Logic 小与数组第一个值的版本和等于数字第2个值的版本提示更新
    var browser=jsion.utils.navigator();    
    
    //alert(v);
    if(v<bannedFlash[0]){
        return -1;
    }
    
    
    for(var i = 0; i < bannedFlash.length; ++i){
        if(parseInt(bannedFlash[i].split(',')[0]) > parseInt(v.split(',')[0])){
            return 1;
        }
        else if(parseInt(bannedFlash[i].split(',')[0]) == parseInt(v.split(',')[0])){
            if(parseInt(bannedFlash[i].split(',')[1]) > parseInt(v.split(',')[1])){
                return 1;
            }
            else if(parseInt(bannedFlash[i].split(',')[1]) == parseInt(v.split(',')[1])){
                if(parseInt(bannedFlash[i].split(',')[2]) > parseInt(v.split(',')[2])){
                    return 1;
                }
                else if(parseInt(bannedFlash[i].split(',')[2]) == parseInt(v.split(',')[2])){
                    if(parseInt(bannedFlash[i].split(',')[3]) > parseInt(v.split(',')[3])){
                        return 1;
                    }
                }
            }
        }
    }
    return 0;
}

window["MzBrowser"]=
{
};
(function()
{
  if(MzBrowser.platform) return;
  var ua = window.navigator.userAgent;
  MzBrowser.platform = window.navigator.platform;
  MzBrowser.firefox = ua.indexOf("Firefox")>0;
  MzBrowser.opera = typeof(window.opera)=="object";
  MzBrowser.ie = !MzBrowser.opera && ua.indexOf("MSIE")>0;
  MzBrowser.mozilla = window.navigator.product == "Gecko";
  MzBrowser.netscape= window.navigator.vendor=="Netscape";
  MzBrowser.safari= ua.indexOf("Safari")>-1;
  if(MzBrowser.firefox) var re = /Firefox(\s|\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.ie) var re = /MSIE( )(\d+(\.\d+)?)/;
  else if(MzBrowser.opera) var re = /Opera(\s|\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.netscape) var re = /Netscape(\s|\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.safari) var re = /Version(\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.mozilla) var re = /rv(\:)(\d+(\.\d+)?)/;
  if("undefined"!=typeof(re)&&re.test(ua))
  MzBrowser.version = parseFloat(RegExp.$2);
}
)();

function getSite(){
    var params = location.search.replace('?','').split('&');
    for(var i = 0; i < params.length; ++i){
        if(params[i].split("=")[0].toLocaleLowerCase() == 'site'){
            return params[i].split("=")[1];
        }
    }
    return "";
};
function checkScreen()
{
  //window.moveTo(0,0);   
  //window.resizeTo(screen.width,screen.height);
  var s = 600;   
  if(MzBrowser.ie)
  {
    s=document.body.offsetHeight;
  }
  if(MzBrowser.firefox)
  {
    s=window.innerHeight;
  }
  if(MzBrowser.opera)
  {
    s=document.body.clientHeight;
  }
  var site = getSite();
  if (s<600&&(site.indexOf("duowan_")<0))
  {
    alert('您的游戏画面显示不全,建议您使用全屏显示(按F11)');
  }
}

function addfavorite(www,name)
{
  window.external.addFavorite(www,name);
}

window.jsion = window.jsion || {
    version: "1-0-0",

    emptyFn: function() {}
};
jsion.isString = function($) {
    return (typeof $ == "object" && $ && $.constructor == String) || typeof $ == "string"
};
jsion.swf = jsion.swf || {};
jsion.event = jsion.event || {};
jsion.utils = jsion.utils || {};
jsion.swf.getMovie = function($) {
    return document[$] || window[$]
};
jsion.swf.getVersion = function() {
    var B = navigator;
    if (B.plugins && B.mimeTypes.length) {
        var A = B.plugins["Shockwave Flash"];
        if (A && A.description) return A.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s)+r/, ".") + ".0"
    } else if (window.ActiveXObject && !window.opera) for (var C = 10; C >= 2; C--) {
        try {
            var _ = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + C);
            if (_) {
                return C + ".0.0";
                break
            }
        } catch($) {}
    }
};
jsion.swf.createHTML = function(M) {
    M = M || {};
    var E = jsion.swf.getVersion(),
    J = 1,
    K = M.ver || "6.0.0",
    _,
    $;
    if (E) {
        E = E.split(".");
        K = K.split(".");
        for (var F = 0; F < 3; F++) {
            _ = parseInt(E[F], 10);
            $ = parseInt(K[F], 10);
            if ($ < _) break;
            else if ($ > _) {
                J = 0;
                break
            }
        }
    } else J = 0;
    if (!J) return "";
    var G = M.vars,
    D, B, I, L = ["classid", "codebase", "id", "width", "height", "align"];
    M.align = M.align || "middle";
    M.classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
    M.codebase = "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0";
    M.movie = M.url || "";
    delete M.vars;
    delete M.url;
    if (jsion.isString(G)) M.flashvars = G;
    else {
        var C = [];
        for (D in G) {
            I = G[D];
            if (I) C.push(D + "=" + encodeURIComponent(I))
        }
        M.flashvars = C.join("&")
    }
    var H = ["<object "];
    for (F = 0, B = L.length; F < B; F++) {
        I = L[F];
        H.push(" ", I, '="', M[I], '"')
    }
    H.push(">");
    var A = {
        wmode: 1,
        scale: 1,
        quality: 1,
        play: 1,
        loop: 1,
        menu: 1,
        salign: 1,
        bgcolor: 1,
        base: 1,
        allowscriptaccess: 1,
        allownetworking: 1,
        allowfullscreen: 1,
        seamlesstabbing: 1,
        devicefont: 1,
        swliveconnect: 1,
        flashvars: 1,
        movie: 1
    };
    for (D in M) {
        I = M[D];
        if (A[D] && I) H.push('<param name="' + D + '" value="' + I + '" />')
    }
    M.src = M.movie;
    M.name = M.id;
    delete M.id;
    delete M.movie;
    delete M.classid;
    delete M.codebase;
    M.type = "application/x-shockwave-flash";
    M.pluginspage = "http://www.macromedia.com/go/getflashplayer";
    H.push("<embed");
    for (D in M) {
        I = M[D];
        if (I) H.push(" ", D, '="', I, '"')
    }
    H.push("></embed></object>");
    return H.join("")
};
jsion.swf.create = function(B, _) {
    B = B || {};
    var A = jsion.swf.createHTML(B),
    $ = true;
    if (_ && jsion.isString(_)) _ = document.getElementById(_);
    if (A.length <= 0) {
        A = B.errorMessage || "";
        $ = false
    }
    if (_) _.innerHTML = A;
    else document.write(A);
    return $
}

jsion.event.addEvent = function(target, eType, handler){
    if(target.addEventListener){
        target.addEventListener(eType,handler, false);
    }else if(target.attachEvent){
        target.attachEvent("on"+eType,handler);
    }else{
        target["on"+eType]=handler;
    }
}
jsion.event.removeEvent = function(target, eType, handler){
    if(target.removeEventListener){//for DOM;
        target.removeEventListener(eType,handler, false);
    }else if(target.detachEvent){
        target.detachEvent("on"+eType,handler);
    }else{
        target["on"+eType]=null;
    }
}

jsion.utils.minWidth = 1000;
jsion.utils.minHeight = 600;
jsion.utils.maxWidth = 1500;
jsion.utils.maxHeight = 900;

jsion.utils.battleWidth = 1300;
jsion.utils.battleHeight = 780;

jsion.utils.currentSize = 0;
jsion.utils.minSize = 1;
jsion.utils.adaptSize = 2;
jsion.utils.CurrentScene = 0;//normal,1 battle
jsion.utils.setMinSize = function(minW, minH){
    minW = minW || 1000;
    minH = minH || 600;
    jsion.utils.minWidth = minW;
    jsion.utils.minHeight = minH;
}
jsion.utils.alertAllSize = function(){
    var      s    =    "去掉Html文件的DOCTYPE节方为准确值";
    s    +=    "\r\n网页可见区域宽:"+    document.body.clientWidth;
    s    +=    "\r\n网页可见区域高:"+    document.body.clientHeight;
    s    +=    "\r\n网页可见区域宽:"+    document.body.offsetWidth      +"    (包括边线和滚动条的宽)";
    s    +=    "\r\n网页可见区域高:"+    document.body.offsetHeight    +"    (包括边线的宽)";
    s    +=    "\r\n网页正文全文宽:"+    document.body.scrollWidth;
    s    +=    "\r\n网页正文全文高:"+    document.body.scrollHeight;
    s    +=    "\r\n网页被卷去的高:"+    document.body.scrollTop;
    s    +=    "\r\n网页被卷去的左:"+    document.body.scrollLeft;
    s    +=    "\r\n网页正文部分上:"+    window.screenTop;
    s    +=    "\r\n网页正文部分左:"+    window.screenLeft;
    s    +=    "\r\n屏幕分辨率的高:"+    window.screen.height;
    s    +=    "\r\n屏幕分辨率的宽:"+    window.screen.width;
    s    +=    "\r\n屏幕可用工作区高度:"+    window.screen.availHeight;
    s    +=    "\r\n屏幕可用工作区宽度:"+    window.screen.availWidth;
    s    +=    "\r\n你的屏幕设置是    "+    window.screen.colorDepth    +"    位彩色";
    s    +=    "\r\n你的屏幕设置    "+    window.screen.deviceXDPI    +"    像素/英寸";
    alert(s);
}

jsion.utils.navigator = function(){
    var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        var s;
        (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
        (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
        (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
        (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
        (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
    
//    以下进行测试
//    if(Sys.ie) document.write('IE: '+Sys.ie);
//    if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
//    if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
//    if(Sys.opera) document.write('Opera: '+Sys.opera);
//    if(Sys.safari) document.write('Safari: '+Sys.safari);

    return Sys;
}

jsion.utils.calcSize = function(width, height){
    var w = width;
    var h = height;
    var Sys = jsion.utils.navigator();
    if(w < jsion.utils.minWidth){w = jsion.utils.minWidth;}
    if(h < jsion.utils.minHeight){h = jsion.utils.minHeight;}
    if(jsion.utils.CurrentScene != 0)
    {
        if(w > jsion.utils.battleWidth){w=jsion.utils.battleWidth;}
        if(h > jsion.utils.battleHeight){h=jsion.utils.battleHeight;}
    }
    else
    {
        if(w > jsion.utils.maxWidth){w=jsion.utils.maxWidth;}
        if(h > jsion.utils.maxHeight){h=jsion.utils.maxHeight;}
    }
    
    w = w - 5; 
    h = h - 5;
    
    return {'w': w, 'h': h};
}



function isSafeFlash(v){
    switch(CheckFlashVersion(v)){
        case -1:
            goToUpdatePage();
            break;
        case 0:
            break;
        case 1:
            break;
    }
}

function goToUpdatePage()
{
    var div = document.createElement("div");
            div.style.width = parseInt(window.screen.width) + "px";
            div.style.height = parseInt(window.screen.height) * 0.85 + "px";
            div.style.top = 0;
            div.style.left = 0;
            div.style.position = "absolute";
            div.style.background = "white";
            document.body.style.background = "white";
            var centerDiv = document.createElement("div");
            centerDiv.style.width = "100%";
            centerDiv.style.height = "100%";
            centerDiv.style.position = "absolute";
            centerDiv.style.top = 0;
            centerDiv.style.left = 0;
            var centerIframe = document.createElement("iframe");
            centerIframe.setAttribute("frameborder","no");
            centerIframe.setAttribute("border","0");
            centerIframe.setAttribute("marginwidth","0");
            centerIframe.setAttribute("marginheight","0");
            centerIframe.style.width = "100%";
            centerIframe.style.height = "100%";
            centerIframe.style.position = "relative";
            centerIframe.src = "UpdateFlash.html";
            
            document.body.appendChild(div);
            document.body.appendChild(centerDiv);
            centerDiv.appendChild(centerIframe);
}

var qihoo360 = {};
qihoo360.user = function(){
    var params = location.search.replace('?','').split('&');
    for(var i = 0; i < params.length; ++i){
        if(params[i].split("=")[0].toLocaleLowerCase() == 'user'){
            return params[i].split("=")[1];
        }
    }
};
qihoo360.site = function(){
    var params = location.search.replace('?','').split('&');
    for(var i = 0; i < params.length; ++i){
        if(params[i].split("=")[0].toLocaleLowerCase() == 'site'){
            return params[i].split("=")[1];
        }
    }
};
qihoo360.sendevent = function(event,sid,qid){
    try{
        if(sid.indexOf("360_")==0){
            sid="S"+parseInt(parseFloat(sid.replace("360_","")));
            jQuery.ajax({
                    url: "crossdomain.jsp?" + encodeURI("url=http://s.1360.cn/game_event&game=sqol&server=" + sid + "&qid=" + qid + "&event=" + event + "&time=" + Math.round(new Date().getTime()/1000)),
                    type: "get"
                });
        }
    }
    catch(err){
    }
}
//qihoo360.sendevent("pageload",qihoo360.site(),qihoo360.user());

function initSwf(){
    //qihoo360.sendevent("beforeloadflash",qihoo360.site(),qihoo360.user());
    
    var flashvars = {
        user: getParameter("user"),//"<%=request.getParameter("user")%>",
        key: getParameter("key"),//"<%=request.getParameter("key")%>",
        site: getParameter("site"),//"<%=request.getParameter("site")%>"
        p2: getParameter("p2"),//"<%=request.getParameter("p2")%>"
        rid: getParameter("rid")//"<%=request.getParameter("rid")%>"
    };
    
    var params = {
        menu: "false",
        quality : "high",
        AllowScriptAccess : "always"
    };
    
    var attributes = {
        id: "GameSwf",
        name: "GameSwf"
    };
    
    
     var Sys=jsion.utils.navigator();
     var r=Sys.ie?Math.random():"sEedee98";
    
    swfobject.embedSWF("Loading.swf?rnd="+r, "MainGame", "100%", "100%", "10.0.0", null, flashvars, params, attributes); 

    addResizeEvent();
    
}
//Swf内有相应调用接口,位于JsHelper.as
function setMinSize(minW, minH){
    jsion.utils.setMinSize(minW, minH);
    jsion.swf.getMovie("GameSwf").width = jsion.utils.minWidth;
    jsion.swf.getMovie("GameSwf").height = jsion.utils.minHeight;
}
//Swf内有相应调用接口,位于JsHelper.as
function setSelfAdapting(){
    resizeSwfObject();
}
function isSelfAdapting(value)
{
    _isSelfAdapting = value;
}
function setCurrentScene(value)
{
    jsion.utils.CurrentScene = value;
    resizeSwfObject();
}
function addResizeEvent(){
     
    jsion.event.addEvent(window, 'resize', resizeSwfObject);
}

var _isSelfAdapting = true;
function resizeSwfObject(){
    var width = document.body.clientWidth+5;
    var height = document.body.clientHeight+5;
    var size = jsion.utils.calcSize(width, height);
    jsion.swf.getMovie("GameSwf").width = size.w;
    jsion.swf.getMovie("GameSwf").height = size.h;
    setTimeout(function(){var width = document.body.clientWidth+5;
    var height = document.body.clientHeight+5;
    var size = jsion.utils.calcSize(width, height);
    jsion.swf.getMovie("GameSwf").width = size.w;
    jsion.swf.getMovie("GameSwf").height = size.h;},500);
}
function setCookie(key, value) {
    var date = new Date();
    //date.setTime(date.getTime()+1000*60);
    document.cookie = '' + key + '=' + value + ';path=/' + ';domaim=7road.com' + ':secure';
}

function getCookie(key) {
    var allcookies = document.cookie;
    var cookie_pos = allcookies.indexOf(key);
    // 如果找到了索引,就代表cookie存在,
    // 反之,就说明不存在。
    if (cookie_pos != -1) {
        // 把cookie_pos放在值的开始,只要给值加1即可。
        cookie_pos += key.length + 1;
        var cookie_end = allcookies.indexOf(";", cookie_pos);
        if (cookie_end == -1) {
            cookie_end = allcookies.length;
        }
        var value = unescape(allcookies.substring(cookie_pos, cookie_end));
        return value;
    }
    return "";
}

var allowLeave = 1;
var wwwdata="";
var namedata="";
window.onbeforeunload = function(e)
{
  if(wwwdata!="")
  {
    window.external.AddFavorite(wwwdata, namedata);
    return;
  }
  
  var browser = navigator.appName;
  if(allowLeave==1)
  {  
    var unfinishedInfo;
    try
    {
        var flashobj=jsion.swf.getMovie("GameSwf");
        if(flashobj&&flashobj.getUnfinishedInfo)
        {
            unfinishedInfo=flashobj.getUnfinishedInfo();             
        }
        if(!unfinishedInfo){
                unfinishedInfo='当前操作将退出货币战争游戏,是否继续?';
            }
    }
    catch(e)
    {
        unfinishedInfo='当前操作将退出货币战争游戏,是否继续?';
    }
     if (browser == "Netscape") 
     {
       e.preventDefault();
       
       //return '当前操作将退出神曲游戏,是否继续?';
       return unfinishedInfo;
     } 
     else 
     {
       //window.event.returnValue = '当前操作将退出神曲游戏,是否继续?';
       window.event.returnValue = unfinishedInfo;
     }
  }
  else if(allowLeave==3)//当玩家第一次登陆游戏后,关闭浏览器时 2011-11-28 Action  add
  { 
     
     if (browser == "Netscape") 
     {
       e.preventDefault();
       return "明日上线可立即领取:\n\n★ 活动奖励:海量经验,体力药水免费送。\n★ 神树宝箱:礼金黄金送不停。\n★ 签到奖励:神秘道具,神奇宝石等您领。\n★ 登陆任务:商城道具全免费!\n";
     } 
     else 
     {
       window.event.returnValue = "明日上线可立即领取:\n\n★ 活动奖励:海量经验,体力药水免费送。\n★ 神树宝箱:礼金黄金送不停。\n★ 签到奖励:神秘道具,神奇宝石等您领。\n★ 登陆任务:商城道具全免费!\n";
     }
  }
}
function setAllowLeave()
{
  allowLeave = 2;  
}
//2011-11-28 Action  add
function setFirstLeave()
{
    allowLeave = 3; 
}
function addfavorite(www,name)
{
  wwwdata=www;
  namedata=name;  
}

function addToFavorite()
{
    try{
        external.AddToFavoritesBar(wwwdata,namedata,'');//IE8
    }
    catch(e){
        try {
            window.external.addFavorite(wwwdata, namedata);
        } catch(e) {
            try {
                window.sidebar.addPanel(namedata, wwwdata, "");//firefox
            } catch(e) {
                alert("该浏览器不支持此功能,请使用Ctrl+D进行添加");
            }
        }
    }
}

//判断用户是否安装有flash
function hasFlash()
{

    var exist=false;
    var isIE = navigator.userAgent.indexOf("MSIE")>0;
    var swf;
    
    if(isIE)
    {
        try
        {
            swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); 
            if(swf) 
            {
                exist=true;        
            }
        }
        catch(e)
        {
            return false;
        }
    }
    else
    {
        if (navigator.plugins && navigator.plugins.length > 0)
        {
            swf=navigator.plugins["Shockwave Flash"];
            if (swf)
            {
                exist=true;
            }
        }
    }
    swf=null;//设置为null,垃圾回收
    return exist;
}

 

posted on 2012-08-27 13:13  防空洞123  阅读(1726)  评论(0编辑  收藏  举报

导航