本文和大家重点讨论一下Flex与浏览器交互问题,在用Flex做Web应用时为了扩展应用程序功能,势必会更多的同浏览器进行交互,这样就会用到下面介绍的知识。
总结Flex与浏览器交互
在用Flex做Web应用时为了扩展应用程序功能,势必会更多的同浏览器进行交互,这样就会用到下面介绍的知识。
1、在Flex中实现URL跳转(使用flash.net.navigateToURL()方法如:)
/*
*param1:要跳转的URL
*param2:跳转方式_blank/_self
*/
navigateToURL(newURLRequest("http://blog.csdn.net/xingjunli"),"_blank");
- 1.
- 2.
- 3.
- 4.
- 5.
2、Flex与浏览器交互使用FlashVars传替换参数(使用Application.application.parameters属性)
页面嵌入SWF文件代码(我们可以通过JS动态来设置FlashVars信息已达到数据交互的目的)
<objectclassidobjectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"width="100%"height="100%"id="mySwf">
<paramnameparamname="movie"value="main.swf"/>
<paramnameparamname="quality"value="high"/>
<paramnameparamname="bgcolor"value="#869ca7"/>
<paramnameparamname="allowScriptAccess"value="sameDomain"/>
<paramnameparamname="FlashVars"value="UserName=Andy_liu&Age=18
&Address=HongKong"/>
</object>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
Flex中获取参数代码:
privatefunctiononFlashVars(e:MouseEvent):void//获取页面参数
{
varparameters:Object=Application.application.parameters;
labURL.text=Application.application.url.toString();//http://localhost:8889/main.swf
varparam1:String=parameters.UserName;//Andy_liu
varparam2:int=parseInt(parameters.Age);//18
varparam3:String=parameters.Address;//HongKong
/*
txtParam1.text=param1;
txtParam2.text=String(param2);
txtParam3.text=param3;
*/
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
3、Flex与浏览器交互时在Flex中调用JavaScript函数
先在页面中完成jsfunction(注在Flex中只能调用当前页面引入的JS函数)
functionShowUserInfo(name,age,address)
{
alert("Name:"+name+"\n"+"Age:"+age+"\n"+"Address"+address);
return"CallSuccessful!"
}
- 1.
- 2.
- 3.
- 4.
- 5.
Flex中调用方法并获取JSfunction返回值(使用ExternalInterface.call()方法):
privatefunctiononCallJS(e:MouseEvent):void
{
/*
*param1:当前页JSfunction方法名
*param...传递的参数0-N个
*/
varresultValue:String=ExternalInterface.call("ShowUserInfo",txtParam1.text,txtParam2.text,txtParam3.text);
//resultValue=CallSuccessful!
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
【编辑推荐】