0

AS3 で使用するために URL/GET 変数を 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 に答える