0

我使用 swfobject 在 page.php?user=john 页面上嵌入了一个 Flash 播放器。播放器调用xml文件content.php获取结果。我正在尝试从 url id 获取用户名。并据此获取结果。我可以通过 $_GET['user'] 获取 page.php 上的用户名,但我如何将其传递给 content.php。在网上阅读了很多文章后,我做了以下,

我正在使用这样的 swfobject在page.php上嵌入 flash

<script type="text/javascript">
    var flashvars = {user:"<?php $_GET[user] ?>"};
    var so = new SWFObject("<?php echo $index->CFG['site']['url'];?>preview2.swf", "sotester", "1000", "400", "8", "#000000", flashvars);
    so.addParam("allowFullScreen", "true");
    so.addParam("scale", "noscale");
    so.addParam("menu", "false");
    so.write("flashcontent");
</script> 

在我的AS2文件中,文件末尾看起来像

var paramList:Object = this.root.loaderInfo.parameters;
trace(paramList["user"])
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("contentp.php?user=" + user);

所以基本上,我试图将 $_GET['user'] 从 page.php 传递到调用 content.php 的我的 swf 文件。然后 swf 将该值传递给 content.php。我相信我为您提供了所有需要的信息。任何帮助,将不胜感激。

PS:现在我拥有它,看着控制台,我明白了 Request URL:http://www.domain.com/content.php?user=undefined。所以它是不确定的。

4

2 回答 2

2

像这样嵌入 SWFObject v2.2

<html>
  <head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <script type="text/javascript" src="swfobject.js"></script>
  <script type="text/javascript">
    function loaded( ){
      var flashvars = { };
          flashvars.user = "<?php $_GET[user] ?>";

      var params = {};
          params.menu = "false";
          params.quality = "high";
          params.bgcolor = "#869ca7";
          params.allowFullScreen = "true";
          params.scale = "noscale";

      var attributes = {};
          attributes.id = "myFlashObject";
          attributes.name = "myFlashObject";
          attributes.align = "middle";
          attributes.allowFullScreen = "true";
          attributes.scale = "noscale";

      var tmp = "expressInstall.swf";
      var version = "8.0.0";
      var width = "1000";
      var height = "400";
      var container = "sotester"

      // verify the URL is correct
      var flashObj = "<?php echo $index->CFG['site']['url'];?>preview2.swf";

      swfobject.embedSWF(flashObj, container, width, height, version, tmp, flashvars, params, attributes);

    }
  </script>
  </head>
<body onLoad="loaded()">
  <div id="sotester">Loading Content... put alt. content here</div>
</body>
</html>



// in actionscript 3
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
var user: String = String( paramObj[user] );
trace( user );

[编辑]

// in actionscript 2
// _level0 will have the global flashvar on it
// trace(user);

参考

于 2011-06-03T17:35:31.240 回答
0

有几种方法可以解决这个问题。如果您想将 flashvars 插入到嵌入式 swf 中,您可以简单地使用对象上的 flashvar 属性或嵌入标签:

<param name="flashvars" value="uId=<?= $_GET['user'] ?>" />

另一种方法是让 Flash 检索 userId 本身。因为 flash 可以调用 javascript,所以你实际上可以像这样做同样的事情:

if( ExternalInterface.available ) {
    ExternalInterface.call( "function() { return window.location.href; }" );
}

这实际上会将完整的 URL 字符串返回到 flash 本身,您可以在其中执行所需的所有子字符串操作。

于 2011-06-03T06:46:05.537 回答