本文和大家重点讨论一下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");
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>
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;
- */
- }
3、Flex与浏览器交互时在Flex中调用JavaScript函数
先在页面中完成jsfunction(注在Flex中只能调用当前页面引入的JS函数)
- functionShowUserInfo(name,age,address)
- {
- alert("Name:"+name+"\n"+"Age:"+age+"\n"+"Address"+address);
- return"CallSuccessful!"
- }
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!
- }
【编辑推荐】