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

Flex页面跳转时候进行值的传递;

发布时间:2020-12-15 03:55:37 所属栏目:百科 来源:网络整理
导读:众所周知Flex主要用于B/S结构程序的开发,凡是这类型的开发都存在页面间的传值的问题,通常一般的B/S开发主要不外乎使用 地址修改法 ,隐藏表单域等方法,但是这些方法在Flex中确没有用, ????? 原因是应为Flex支持的模型和普通的B/S开发语言不一样, 一般的
众所周知Flex主要用于B/S结构程序的开发,凡是这类型的开发都存在页面间的传值的问题,通常一般的B/S开发主要不外乎使用 地址修改法,隐藏表单域等方法,但是这些方法在Flex中确没有用,

????? 原因是应为Flex支持的模型和普通的B/S开发语言不一样,一般的B/S开发语言使用的主要是请求/响应模型,而Flex采用的是事件驱动模型(这种模型主要见于C/S结构程序),所以我们的Form表单等传值方法就无效了,哪么我们如何在两个这样模型的页面中传递数据呢?下面我们讲述下两种常用的传值方法:

????? 一、?利用ExternalInterface调用Javascript
???? a)?该方法主要利用ExternalInterface的call方法调用Javascript函数,进而修改地址(有点类似于地址修改法),在接受页面上主要是靠BrowserManager获取地址栏信息,并利用URLUtil截取参数。
??? b)?该方法虽然简单但是确调用了2种语言,给编写带来一定的困难
?? ?发送页面代码(second.html):
??

[java] view plain copy print ?
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute">??
  3. ?<mx:Script>??
  4. ??<![CDATA[??
  5. ??function?kk():void{??
  6. ???var?value:String?=?myparam.text;??
  7. ?ExternalInterface.call("function(){window.location.href=’http://localhost:8080/send/page.html#param1="+value+"’}");??}??
  8. ??]]>??
  9. ?</mx:Script>??
  10. ?<mx:TextInput??id="myparam"></mx:TextInput>??
  11. ?<mx:Button?name="ok"?click="kk()"?x="185"?label="提交"></mx:Button>??
  12. </mx:Application>??


接收页面代码(page.html):

[java] view plain copy print ?
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?creationComplete="init()"?>??
  3. ?<mx:Script>??
  4. ??<![CDATA[??
  5. ???import?mx.managers.IBrowserManager;??
  6. ???import?mx.managers.BrowserManager;??
  7. ???import?mx.utils.URLUtil;??
  8. ???[Bindable]??
  9. ???var?param:String;??
  10. ???function?init():void??
  11. ???{??
  12. ????var?bm:IBrowserManager?=?BrowserManager.getInstance();???
  13. ????bm.init();??
  14. ????var?o:Object?=?URLUtil.stringToObject(bm.fragment,"&");??
  15. ????param?=?o.param1;??
  16. ???}??
  17. ??]]>??
  18. ?</mx:Script>??
  19. ?<mx:TextInput?id="val"?text="{param}">??
  20. ?</mx:TextInput>??
  21. </mx:Application>??


二、?利用SharedObject(本地共享对象传送)
a)?该对象类似于Cookie,将需要传送的数据放在SharedObject对象中,而实际上在本机大致在(win2k和 win xp中,默认路径为C:Documents and SettingsusernameApplication DataMacromediaFlash Player#SharedObjects (username为机器的用户名))位置生成一个sol文件,该对象具有一个data属性,只要将你要传的数据按键值对放进去就好了,下次读取的时候就在本地直接读取即可
b)?遗憾的是,该对象要求你自己创建还要自己清除,并且在写入数据时一定要强制刷新,否则数据无法希尔

发送页面代码(index.html):

[java] view plain copy print ?
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute">??
  3. ?<mx:Script>??
  4. ??<![CDATA[??
  5. ???function?submit():void??
  6. ???{??
  7. ????var?param:String?=?myparam.text;??
  8. ????//创建全局SharedObject,如果不用全局就去掉后面的"/",一旦去掉那么cookie只能被自己的Application使用,其他Applicaiton无法看见??
  9. ????//myparam是要求在本机创建一个叫cookie.sol的文件??
  10. ????var?obj:SharedObject?=?SharedObject.getLocal("cookie","/");??
  11. ????obj.data.username=myparam.text;??
  12. ????obj.flush();??
  13. ????//调用URLRequest将跳转到second.html页面??
  14. ????var?request:URLRequest?=new?URLRequest();??
  15. ????request.url="second.html";??
  16. ????navigateToURL(request);??
  17. ???}??
  18. ??]]>??
  19. ?</mx:Script>??
  20. ?<mx:TextInput?id="myparam"></mx:TextInput>??
  21. ?<mx:Button?label="提交"?click="submit()"?x="177"></mx:Button>??
  22. </mx:Application>??


接收页面代码(second.html):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
?<mx:Script>
??<![CDATA[
???[Bindable]
???var param:String;
???function init():void
???{
????//在本地找到myparam.sol文件
????var obj:SharedObject =SharedObject.getLocal("cookie","/");
????//读取前页存入的数据
????param = obj.data.username;
????//用完了别忘了将myparam.sol文件删除
????obj.clear();
???}
??]]>
?</mx:Script>
?<mx:TextInput id="mypar" text="{param}"></mx:TextInput>
</mx:Application>

(编辑:李大同)

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

    推荐文章
      热点阅读