我有一个Flash应用程序,我想通过defaul.aspx页面的javascript向它发送参数。
我有一个名为Id的参数,它可以接受字母数字值。
如果我只输入Id的数字,则url中的查询字符串工作正常,并将我带到依赖于该ID的特定页面,但是如果我输入数字和字符组合(如001A),则它不起作用。
这是我使用的代码
<script type="text/javascript">
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0; i<vars.length; i++)
{
var pair = vars[i].split("=");
if (pair[0] == variable)
return (pair[1]);
}
}
</script>
然后我将flash应用程序的第一页分配给它。
flashvars.StartPage = getQueryVariable("Id");
然后将flashvars传递给swfobject.embedSWF
我也不想在flash端
中修改mxml文件中的任何内容如果有人能帮我解决问题,我感激不尽
感谢
答案 0 :(得分:0)
不,您不需要使用JavaScript来处理来自查询字符串的值,然后再发送到闪存。
只需使用ExternalInterface.call
函数从URL中获取变量(在本例中为GET)。
以下是代码的工作原理。在MXML中添加此代码。
var pageURL : String = ExternalInterface.call("window.location.href.toString");
var paramPairs : Array = pageURL.split("?")[1].split("&");
for each (var pair : String in paramPairs)
{
var pairHolderx:Array = pair.split("=");
arrVals[counter]=pairHolderx[1];
counter++;
}
因此,如果您的网址与http://www.stackoverflow.com/page.aspx?id=230A78&id2=8934相同
arrVals[0]
包含230A78,arrVals[1]
包含8934