Отправить переменные php для прошивки, используя flashvars - PullRequest
0 голосов
/ 03 июня 2011

У меня есть встроенный флеш-плеер на странице page.php? User = john, использующий swfobject.Плеер вызывает XML-файл content.php, чтобы получить результаты.Я пытаюсь получить имя пользователя из URL-адреса.и получить результаты, основанные на этом.Я могу получить имя пользователя на page.php, выполнив $ _GET ['user'], но как я могу передать его в content.php.Прочитав много статей в Интернете, я сделал следующее:

Я встраиваю флешку в page.php , используя такой вот swfobject

<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 в мой swf-файл, который вызывает контент.PHP.Затем swf передаст это значение в content.php.Я считаю, что предоставил вам всю необходимую информацию.Любая помощь будет оценена.

PS: сейчас, когда он у меня есть, глядя на консоль, я вижу Request URL:http://www.domain.com/content.php?user=undefined.Так что это как неопределенный.

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

Встраивать так же с 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 );

[EDIT]

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

ССЫЛКА

0 голосов
/ 03 июня 2011

Есть несколько способов сделать это. Если вы хотите вставить flashvars во встроенный swf, вы можете просто использовать свойство flashvar для объекта или встроить теги:

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

Другой способ сделать это - заставить Flash извлекать сам идентификатор пользователя. Поскольку flash может вызывать javascript, вы можете сделать то же самое, как это:

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

Это на самом деле вернет полную строку URL для самой прошивки, при этом вы можете выполнять все необходимые операции с подстрокой.

...