2011-06-03 16 views
0

我在page.php頁面上嵌入了flash播放器?user = john使用swfobject。玩家調用xml文件content.php來獲得結果。我試圖從網址ID獲取用戶名。並基於此獲取結果。我可以通過執行$ _GET ['user']來獲取page.php上的用戶名,但是我怎樣才能將它傳遞給content.php。有文章閱讀配發網上,我做了以下,使用flashvars將php變量發送到閃存

我用這樣的

<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> 

SWFObject的在文件看起來我AS2文件結束嵌入閃存上page.php文件

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從page.php文件[ '用戶']需要將呼叫content.php我的swf文件。然後,swf會將該值傳遞給content.php。我相信我向你提供了所有需要的信息。任何幫助,將不勝感激。 PS:現在,因爲我擁有它,看着控制檯,我看到Request URL:http://www.domain.com/content.php?user=undefined。所以它是未定義的。

+0

那麼究竟是什麼不起作用? – cweiske 2011-06-03 06:43:17

+0

您拼錯了'$ GET [user]'。它應該是'var flashvars = {user:「<?php $ _GET [user]?>」}; - 缺少下劃線 ' – meouw 2011-06-03 07:04:03

+0

@meouw,這只是一個類型。我在我的代碼中正確使用它。 – Pinkie 2011-06-03 07:13:32

回答

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); 

REFERENCE

+0

謝謝。但我不認爲'LoaderInfo(this.root.loaderInfo).parameters;'在AS2中工作。在AS2 – Pinkie 2011-06-03 18:56:13

+0

中做什麼是另一種選擇啊,我不知道它是你想要的AS2。 – 2011-06-03 21:23:25

+0

在底部添加了一個編輯AS2 – 2011-06-03 21:25:26

0

有幾種方法可以解決這個問題。如果要插入的flashvars到嵌入式SWF,你可以簡單地使用上的對象或嵌入標籤中的Flash變量屬性:

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

另一種方式來做到這一點是可以讓Flash檢索用戶id本身。因爲閃光燈可以調用JavaScript,你其實可以做同樣的事情是這樣的:

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

這實際上將返回完整的URL字符串閃爍本身,其中你可以做你想要的所有子操作。

+0

我正在使用swfobject。我已經在使用flashvars了。不知道我需要在.AS文件中做什麼。對於第二個選項,我將代碼放在我的.AS文件中。如果是,我如何將變量用戶傳遞給'xmlData.load(「contentp.php?user =」+ user);' – Pinkie 2011-06-03 06:52:39