加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何把request param data传给flex app

发布时间:2020-12-15 01:09:59 所属栏目:百科 来源:网络整理
导读:参考文档 1. 关于flex html template wrapper (以后的文章详细讲解): http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf663fe-7fff.html 2. Creating a wrapper: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3

参考文档

1. 关于flex html template wrapper (以后的文章详细讲解): http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf663fe-7fff.html


2. Creating a wrapper: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7ecf.html


3. 通过flashvar property来把request param data传给flexapp: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf626ae-7feb.html

?

4. Flex app直接从URL fragments获取:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7e9c.html

?

先看如何通过flashvarproperty来把requestparam data传给flexapp:

Step 1 create a flex project


Step 2 open /html-template/index.template.html file,and find following codes

???????????? var flashvars ={};


Step 3 add following 2 line codes below it

??????????? flashvars.firstname= "Nick";

??????????? flashvars.lastname= "Danger";

如果是用JSP page,则可以为

??????????? flashvars.firstname= "<%= request.getParameter("firstname")%>";

??????????? flashvars.lastname= "<%= request.getParameter("lastname")%>";


还可以通过在swf的file path里添加param来代替上面这2行代码 (下面这种方式和上2行代码的作用一样!选择其中一种方式即可)

??????? <script type="text/javascript">
??????????? var swfVersionStr = "0";
??????????? var xiSwfUrlStr = "";
??????????? var flashvars = {};
??????????? var params = {};
??????????? params.quality = "high";
??????????? params.bgcolor = "#ffffff";
??????????? params.allowscriptaccess = "sameDomain";
??????????? var attributes = {};
??????????? attributes.id = "FlashVarTest";
??????????? attributes.name = "FlashVarTest";
??????????? attributes.align = "middle";
??????????? swfobject.embedSWF(
??????????????? "FlashVarTest.swf?firstname=Nick&lastname=Danger",
??????????????? "flashContent","100%",
??????????????? swfVersionStr,xiSwfUrlStr,
??????????????? flashvars,params,attributes);
??????? </script>


注意:flashVars properties的值必须是URL encoded,而且该值所包含的参数之间用“&”来连接


Step 4 (optional) 在index.template.html里你还会看到flash object tag <object>在<noscript>file里,要使其使用flashvar,你的<object>应该添加flashvar param

???<object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' height='100%' width='100%'>

???????<param name='src' value='FlashVarTest.swf'/>

?????? ?<param name='flashVars' value='firstname=Nick&lastname=Danger'/>

?????? .......

?? </object>


Step 5 在flex app里如何获取flashvar传来的data

<s:Application ... creationComplete="initVars()">??? ?
?????? <fx:Script><![CDATA[
????????? public var firstName:String;
????????? public var lastName:String;
????????? ?
????????? private function initVars():void {
?????????????? firstName = mx.core.FlexGlobals.topLevelApplication.parameters.firstname;
?????????????? lastName = mx.core.FlexGlobals.topLevelApplication.parameters.lastname;
????????? }
???? ]]></fx:Script>
??? ?
???? .....????? ?
</s:Application>


如果要获取flashvar里的所有params,那么使用下列代码

????????????? for (var i:String in FlexGlobals.topLevelApplication.parameters) {
??????????????????? label1.text += i + ":" + FlexGlobals.topLevelApplication.parameters[i] + "n";
????????????? }


Step 6 run the flex app


再看如何直接在flex app里解析URL里的param:

Flex app通过BrowserManager and URLUtil来直接获取URL里的param

BrowserManager是一个Singleton管理器,用于充当浏览器和应用程序之间的代理。使用它可以访问浏览器地址栏中的URL,这与访问 JavaScript中的document.location属性类似。当url属性发生更改时调度这些事件。然后侦听器可以响应、更改该URL和/或阻止其它对象获取此事件。


注意:URL里的params是跟在"#"后面,而不是跟在"?"后面!!例如

????????? http://www.mydomain.com/MyApp.html#firstName=Nick&lastName=Danger


Flex app里直接获取URL的param的代码


import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.utils.URLUtil;
?? ??? ??? ?
private function init():void {
?? ?var bm:IBrowserManager = BrowserManager.getInstance();?????????????? ?
?? ?bm.init("","Welcome!");?? ??? ?

?? ?//call URLUtil stringToObject method to convert parameters to an object,第二个参数是param之间的分隔符
?? ?//假设URL为http://xxx/MyApp.html#firstName=Nick&lastName=Danger,则分隔符为&

?? ?var o:Object = URLUtil.stringToObject(bm.fragment,"&");???
?
?? ?label1.text=o.firstName + " " + o.lastName; }???

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读