如何通过SWFObject将Flash变量传递给PHP变量
我正在尝试将一个PHP变量通过Flash变量传递给Flash。我的最终目标是将格式化为XML的字符串传递给Flash,但由于我正在努力挣扎,因此我已将所有内容都剥离到基本内容。我只是试图通过SWFObject通过FlashVars传递一个简单的PHP字符串变量到Flash,但有些不对。当我尝试传递php标签中的变量时,页面不会加载,但如果我只传递一个硬编码的字符串,它将加载。我的网页的基本结构是,我在上面,像这样宣布一些PHP:我的HTML中如何通过SWFObject将Flash变量传递给PHP变量
PHP
<?php
$test = "WTF";
?>
一些HTML(这里排除了简单起见),然后JavaScript的SWFObject的嵌入:
<script type="text/javascript" src="js/swfobject2.js"></script>
<script type="text/javascript">
// <![CDATA[
var swfURL = "swfs/Init-Flash-PHP.swf";
var flashvars = {};
flashvars.theXML = <?php print $test ?>;
var params = {};
//params.menu = "false";
params.scale = "showAll";
params.bgcolor = "#000000";
params.salign = "TL";
//params.wmode = "transparent";
params.allowFullScreen = "true";
params.allowScriptAccess = "always";
var attributes = {};
attributes.id = "container";
attributes.name = "container";
swfobject.embedSWF(swfURL, "container", '100%', '100%', "9.0.246", "elements/swfs/expressinstall.swf", flashvars, params, attributes);
// ]]>
</script>
而ActionScript 3代码的最基本的要素:
_paramObj = LoaderInfo(stage.loaderInfo).parameters;
theText_txt.text = _paramObj['theXML'];
如何使用SWFObject和FlashVars传递一个PHP变量?
谢谢。
呃,我需要摆脱闪光变色,它的工作。
对于任何人的兴趣,这正是我需要的改变
flashvars.theXML = <?php print $test ?>;
更改为:(!)
flashvars.theXML = escape('<?php print $test ?>');
越狱()不是逃避一个万无一失的方法
改用encodeURIComponent()。
这是从点9在FAQ:http://code.google.com/p/swfobject/wiki/faq
开始=>
- 如何传递的URI或HTML代码作为使用Flash变量的值?
特殊字符和符号= 和&不能直接内部 Flash变量的值(因为 它们用于堆叠的flashvars 本身后者)被使用。
可以 解决办法之前通过 这个问题逃避这些字符将它们作为Flash变量的值。一个 例如:
encodeURIComponent方法( “&贸易”)将成为 %26trade
值会在你的 SWF已经提供未编码的,所以需要你的SWF内没有 转义。
注意encodeURIComponent方法不 所有浏览器,但在所有常见的现代 版本 可用。如果您需要完全向后 兼容性,则可以使用escape() 来代替,但请注意escape()不会 与双字节 字符(如中文)无法正常工作。
您还可以通过使用手动逃避这些字符 :
* %3D instead of = * %26 instead of &