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

Flex通过javascript读写cookie

发布时间:2020-12-15 04:38:21 所属栏目:百科 来源:网络整理
导读:最近遇到个问题,开发web项目的时候,可能flex只用来实现项目的部分模块。当flex需要在客户端写入/读取一些状态信息的时候,我们会想到用cookie。flex是不支持cookie的,只有SharedObject这个本地对象。所以解决的办法就有两个: flex通过调用js来实现对cook

最近遇到个问题,开发web项目的时候,可能flex只用来实现项目的部分模块。当flex需要在客户端写入/读取一些状态信息的时候,我们会想到用cookie。flex是不支持cookie的,只有SharedObject这个本地对象。所以解决的办法就有两个:

  1. flex通过调用js来实现对cookie的操作;
  2. js通过flex实现对SharedObject的操作;

这两种方法的基础就是实现flex和javascript的交互,自己试着写了个小例子,实现了第一种方法,直接上代码:

?

Flex_Js_Cookie.js:

?

[javascript]? view plain copy print ?
  1. function?SetCookie(name,value)??
  2. {??
  3. ????document.cookie?=?name+"="+escape(value);??
  4. };??
  5. function?GetCookie(name)??
  6. ????var?arr?=?document.cookie.match(new?RegExp("(^|)"+name+"=([^;]*)(;|$)"));??
  7. ????alert(arr.length);??
  8. ????if(arr?!=?null)??
  9. ????{??
  10. ????????return?unescape(arr[2]);??
  11. ????}??
  12. }??

?

Flex_Js_Cookie.html:

[xhtml]? ?
    <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">??
  1. <html?xmlns="http://www.w3.org/1999/xhtml">??
  2. <head>??
  3. <head>??
  4. <title></title>??
  5. <script?src="swfobject.js"?type="text/javascript"></script>??
  6. <script?src="Flex_Js_Cookie.js"?type="text/javascript"></script>??
  7. <script?language=javascript>??
  8. var?flashvars?=?{};??
  9. ????????var?params?=?{??
  10. ????????????menu:?"false",??
  11. ????????????scale:?"noScale",??
  12. ????????????allowFullscreen:?"true",108) 3px solid; border-top-style:none; line-height:18px; padding-top:0px!important; border-right-style:none; border-bottom-style:none"> ????????????allowScriptAccess:?"always",108) 3px solid; border-top-style:none; line-height:18px; padding-top:0px!important; border-right-style:none; border-bottom-style:none"> ????????????bgcolor:?"#FFFFFF"??
  13. ????????};??
  14. ????????var?attributes?=?{id:"swfplayer"};??
  15. ????????swfobject.embedSWF("Flex_Js_Cookie.swf",?"swfplayer",?"500",?"350",?"9.0.0",?"expressInstall.swf",?flashvars,?params,?attributes);??
  16. </script>??
  17. </head>??
  18. <body>??
  19. <div?id="swfplayer"></div>??
  20. </body>??
  21. </html>??

?

Flex_Js_Cookie.mxml:

?
    <?xml?version="1.0"?encoding="utf-8"?>??
  1. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute">??
  2. ????<mx:Script>??
  3. ????????<![CDATA[?
  4. ????????????import?flash.external.*;?
  5. ????????????import?mx.controls.Alert;?
  6. ?????????????
  7. ????????????public?function?GetCookie():void?
  8. ????????????{?
  9. ????????????????var?jsFunction:String?=?"GetCookie";?
  10. ????????????????var?key:String?=?txt_key.text;?
  11. ????????????????if(ExternalInterface.available)?
  12. ????????????????{?
  13. ????????????????????var?value:String?=?ExternalInterface.call(jsFunction,key);?
  14. ????????????????????txt_value.text?=?value;?
  15. ????????????????}?
  16. ????????????}?
  17. ?????????????
  18. ????????????public?function?SetCookie():void?
  19. ????????????{?
  20. ????????????????var?jsFunction:String?=?"SetCookie";?
  21. ????????????????var?key:String?=?txt_key_set.text;?
  22. ????????????????var?value:String?=?txt_value_set.text;?
  23. ????????????????????ExternalInterface.call(jsFunction,key,value);?
  24. ????????????????}?
  25. ????????????}?
  26. ????????]]>??
  27. ????</mx:Script>??
  28. ????<mx:Label?x="51"?y="39"?text="cookie名:"?fontSize="12"/>??
  29. ????<mx:Label?x="51"?y="86"?text="cookie值:"?fontSize="12"/>??
  30. ????<mx:TextInput?x="122"?y="39"?id="txt_key"/>??
  31. ????<mx:Button?x="301"?y="84"?label="确定"?fontSize="12"?click="GetCookie()"/>??
  32. ????<mx:TextInput?x="122"?y="86"?id="txt_value"?enabled="false"/>??
  33. ????<mx:Label?x="51"?y="183"?text="cookie名:"?fontSize="12"/>??
  34. ????<mx:Label?x="51"?y="226"?text="cookie值:"?fontSize="12"/>??
  35. ????<mx:TextInput?x="122"?y="183"?id="txt_key_set"/>??
  36. ????<mx:TextInput?x="122"?y="226"?id="txt_value_set"/>??
  37. ????<mx:Button?x="301"?y="226"?label="确定"?fontSize="12"?click="SetCookie()"/>??
  38. ????<mx:Label?x="51"?y="155"?text="设置cookie"?fontSize="12"?color="#C42A2A"/>??
  39. ????<mx:Label?x="51"?y="11"?text="取得cookie"?fontSize="12"?color="#C42A2A"/>??
  40. ??????
  41. </mx:Application>??

?

通过代码,会发现在html文件里面使用了swfobject.js这个文件,这是一个第三方发布的工具包,方便我们在页面中使用flash,下载地址是:http://code.google.com/p/swfobject/downloads/list。只要里面的js文件。

mxml文件要预先编译成swf文件。然后一起部署到tomcat下就可以运行了。

(编辑:李大同)

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

    推荐文章
      热点阅读