2012-04-17 49 views
0

我想將一個URL/GET變量加載到AS3中使用的FlashVar中。它只是在AS3中追溯到未定義。Flashvars不會通過SWFObject在AS3中註冊

這裏是我的JS($ _ GET [ '建築']設置的東西和回聲出正確):

<script type="text/javascript" src="<?php echo site_url(); ?>js/swfobject.js"></script>  
<script type="text/javascript">  
    <?php if(isset($_GET['building'])){ ?> 
       var flashvars = { building: '_<?php echo $_GET['building']; ?>' }; 
      <?php } else { ?> 
       var flashvars = { }; 
      <?php } ?> 
      var params = {}; 
      var attributes = {}; 
      swfobject.embedSWF("PlanEventTool_cs5-1.swf", "flashContent", "900", "700", '9.0.0', '<?php echo site_url(); ?>js/expressInstall.swf', flashvars, params, attributes); 
    </script> 

我的AS3:

var allFlashVars:Object = LoaderInfo(this.root.loaderInfo).parameters; 
buildingString = String(allFlashVars['building']); 
trace(buildingString); 

一直在研究這個了而我相信我錯過了一些小事。

任何想法?

渲染JS:

var flashvars = { }; 
flashvars.building = "_grandstand"; 
var params = {}; 
var attributes = {}; 
var flashObj = "PlanEventTool_cs5-1.swf?t=" + new Date().getTime(); // anti-cahce 
swfobject.embedSWF(flashObj, "flashContent", "900", "700", '9.0.0', 'expressInstall.swf', flashvars, params, attributes); 

渲染HTML:

<object width="900" height="700" type="application/x-shockwave-flash" data="PlanEventTool_cs5-1.swf?t=1334695440505" id="flashContent" style="visibility: visible;"><param name="flashvars" value="building=_grandstand"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="AllowNetworking" value="all"></object> 
+0

發佈呈現的HTML代碼 – 2012-04-17 20:10:43

+0

此外,您還沒有使用任何形式的反高速緩存,因此可能也是一個問題。 – 2012-04-17 20:16:49

+0

這是呈現的HTML。我試過在不同的瀏覽器/會話中,所以它不應該被緩存。 – adamzwakk 2012-04-17 20:18:01

回答

1

如果你確定$ _GET [ '建築']存在,那麼問題可能與SWF被緩存。
另外我想neaten你的代碼一點點

<script type="text/javascript" src="<?php echo site_url(); ?>js/swfobject.js"></script>  
<script type="text/javascript"> 
    var flashvars = { }; 
    <?php 
     if(isset($_GET['building'])){ 
     echo 'flashvars.building = ' . $_GET['building'] . ';'; 
     } 
    ?> 
    var params = {}; 
    var attributes = {}; 
    var flashObj = "PlanEventTool_cs5-1.swf?t=" + new Date().getTime(); // anti-cache 
    swfobject.embedSWF(flashObj , "flashContent", "900", "700", '9.0.0', '<?php echo site_url(); ?>js/expressInstall.swf', flashvars, params, attributes); 
    </script> 
+0

沒有骰子,同樣的問題。我把我提交的代碼放在我的問題中。 – adamzwakk 2012-04-17 20:48:08

+0

@adamzwakk再次檢查,這個答案,我做了一點修正。 – Engineer 2012-04-17 21:00:24

+0

@Engineer還是什麼都沒有。 Flash將其追溯爲「undefined」 – adamzwakk 2012-04-17 21:12:37

0

很奇怪。

我檢查了你的代碼,沒有錯誤。

你是否刪除了瀏覽器的緩存(當然關閉了你的html頁面)?

也許嘗試事件FRAME_CONSTRUCTED或定時器,如果您延遲代碼會發生什麼?