0

我有一个嵌入在 html 文件中的 swf:

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
        <title>v2</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <style type="text/css" media="screen">
        html, body { height:100%; background-color: #ffffff;}
        body { margin:0; padding:0; overflow:hidden; }
        <!--#wrapper { width:100%; height:100%;}
        #flashContent { width:100%; height:100%; margin-right:auto; margin-left:auto; text-align:center;}-->

        </style>
    <script language="javascript">AC_FL_RunContent = 0;
        </script>
    <script src="/AC_RunActiveContent.js" language="javascript"></script>
    <script language="javascript">
        function backfunc(arg){
            window.location.replace(arg);
        }   
    </script>
<head>
<body>

    <script language="javascript">
    var flashpath = '{{song.flashURL}}' + '?date=' + new Date().getTime();
    var songId = {{song.id}};
    var vars = 'username={{current_user.first_name}} {{current_user.last_name}}' + '&' +
               'songid={{song.id}}' + '&' +
               'sessionid={{session_id}}';
    if (AC_FL_RunContent == 0) {
        alert("This page requires AC_RunActiveContent.js.");
    } else { 

        AC_FL_RunContent(
            'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=11,0,0,0',
            'width', '640',
            'height', '480',
            'src', flashpath,
            'quality', 'high',
            'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
            'align', 'middle',
            'play', 'true',
            'loop', 'false',
            'scale', 'default',
            'wmode', 'window',
            'flashVars',vars,
            'devicefont', 'false',
            'id', '{{song.flashURL}}',
            'bgcolor', '#ffffff',
            'name', '{{song.flashURL}}',
            'menu', 'true',
            'allowFullScreen', 'true',
            'allowScriptAccess','sameDomain',
            'movie', flashpath,
            'salign', ''
            ); //end AC code
    }
</script>
</body>
</html>

我的 swf 中有一个按钮,它调用 javascript 函数将页面重定向到主页。AS3和js代码如下: AS3:

if(ExternalInterface.available){
    txt.text = url;
    ExternalInterface.call("backfunc",url);
}
else{
    txt.text = "ex int not available"; 
}

js:

function backfunc(arg){
    window.location.replace(arg);
}

当我执行此操作时,会出现问题。问题是,当主页加载时,我看到旧的注销用户页面,因为闪存保留了旧的和死的会话 ID。因此,由于 swf,我无法仅管理浏览器和服务器之间的会话。我该如何解决这个问题。我在谷歌和这里搜索了 2 周,最后我决定在这里写。提前致谢。

4

2 回答 2

0

绝对问题与闪存无关。会话是服务器端的,我在您的页面中看不到任何服务器脚本。(如 PHP 或 C#)

于 2013-05-01T00:42:33.243 回答
0

我终于解决了这个问题。问题是域。当用户从 www.site.com 进入站点时,浏览器会创建一个会话。在我们的服务器代码中,重定向为 site.com/blabla。由于缺少“www”,浏览器会创建一个新会话,问题就来了。我已经通过使用相对路径解决了这个问题。

于 2013-05-07T08:31:18.130 回答