0

我正在尝试将 URL/GET 变量加载到要在 AS3 中使用的 FlashVar 中。它只是在 AS3 中追溯为未定义。

这是我的 JS($_GET['building'] 设置为某些东西并正确回显):

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

2 回答 2

1

如果您确定 $_GET['building'] 存在,那么问题可能出在缓存的 SWF 上。
另外,我会稍微整理一下您的代码

<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>
于 2012-04-17T20:21:52.263 回答
0

真的很奇怪。

我检查了你的代码,没有错误。

您是否删除了浏览器的缓存(当然,您的 html 页面已关闭)?

也许尝试事件FRAME_CONSTRUCTED或计时器,如果你延迟代码会发生什么?

于 2012-04-17T23:45:32.190 回答