Я пытаюсь передать ssoTicket из MySQL через веб-страницу и в файл SWF.
Приведенный ниже код приводит к нулю в журнале сервера, но когда я устанавливаю соответствующий 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"];
SWF с предустановленным ssoTicket
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-код, который вы сможете вырезать / вставить в свой код (swfobjectgen.html).
Тогда это должно работать внутри вашего SWF, чтобы назначить ваш тикет:
var ssoTicket:String = LoaderInfo(this.root.loaderInfo).parameters.sso;
Других решений пока нет …