如何将变量从 MySQL 传递到 SWF

How to pass variable from MySQL to SWF

我正在尝试通过网页将来自 MySQL 的 ssoTicket 传递到 SWF 文件中。

下面的代码在服务器日志中导致 null,但是当我设置匹配的 ssoTicket 时,一切正常。

网上好像资料比较少

我已经打印了 sso_ticket,它确实回显了正确的字符串。

页数

<?php
include("global.php");
if($islogged) { ?>
<?xml version=”1.0″?>
<html>
<head>
    <title><?php echo $self['sso_ticket']; ?></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="language" content="en" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />

    <script src="js/swfobject.js" type="text/javascript"></script>
    <script type="text/javascript">
        var flashvars = {
            sso: "<?php echo $self['sso_ticket']; ?>" 
        };
        var params = {
            menu: "false",
            scale: "noScale",
            allowFullscreen: "true",
            allowScriptAccess: "always",
            bgcolor: "#FFFFFF"
        };
        var attributes = {
            id:"E4"
        };
        swfobject.embedSWF("ac.swf", "altContent", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
    </script>
    <style>
        html, body { height:100%; }
        body { margin:0; }
    </style>
</head>
<body>
  <div id="altContent">
        <p><a href="http://www.adobe.com/go/getflashplayer"><img 
            src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" 
            alt="Get Adobe Flash player" /></a></p>
    </div>
</body>
</html>
<?php
}
?>

SWF

var ssoTicket:String = LoaderInfo(this.root.loaderInfo).parameters["sso"];

带有预设 ssoTicket 的 SWF

var ssoTicket:String = LoaderInfo(this.root.loaderInfo).parameters["sso"];          
if (ssoTicket == "" || ssoTicket == null) ssoTicket = "73a448e7e4a3314d2d1a3f33588df9b8";

您的 flashvars 应该是一组 name=value 对(由 & 分隔的对,目前您的示例中未使用,但以防您添加更多 flashvars)。

所以这样的事情会起作用:

<script type="text/javascript">
    var flashvars = {};
    flashvars.sso = "<?php echo $self['sso_ticket']; ?>";
    var params = {};
    var attributes = {};
    swfobject.embedSWF("ac.swf", "myAlternativeContent", "800", "600", "9.0.0", false, flashvars, params, attributes);
</script>

swfobject 项目中有一个 html 生成器,您可以将所有值插入其中,它会生成静态或动态 html 代码,供您 cut/paste代码(swfobjectgen.html)。

那么这应该在您的 SWF 中工作以分配您的票 #:

var ssoTicket:String = LoaderInfo(this.root.loaderInfo).parameters.sso;