`
maloveqiao
  • 浏览: 102731 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

在Flex中实现cookie功能

    博客分类:
  • as3
 
阅读更多
1、使用FLEX自带SharedObject
做登录等类的身份验证功能,传统的WEB开发基本上都要使用session或是cookit。然而在Flex中并没有提供直接操作cookit或是 session的方法。经过查资料发现,Flex提供了SharedObject这个本地对象。有人把它称为“Flash Cookie ”。还真是形 象啊,呵,不管怎么说,毕竟还是有解决办法的。

SharedObject提供了下面的操作本地对象的方法:
SharedObject.clear() 删除本地共享对象;
SharedObject.flush() 立即把共享对象数据写入本地文件;
SharedObject.getLocal() 创建或连接本地共享对象;
SharedObject.getSize() 取得本地共享对象的指定大小数据。

程序代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init(event)" borderColor="#FFFFFF" themeColor="#FFFFFF" width="800" height="600" backgroundColor="#FFFFFF" textAlign="center" verticalAlign="middle" horizontalAlign="center" backgroundImage="@Embed(source='lt1.jpg')">
<mx:Script>
     <![CDATA[
         import mx.controls.Alert;
         import mx.events.FlexEvent;
         private function init(event:FlexEvent):void {
         // 创建一个本地保存数据的对象s  
         var test:SharedObject = SharedObject.getLocal("testcookie");
         test.data.user = "testuser";
         test.data.psw = "testpwd";
         test.flush(); //提交保存

         var test2: SharedObject = SharedObject.getLocal("testcookie");
         Alert.show(test2.data.user);
         Alert.show(test2.data.psw);
         }
     ]]>
</mx:Script>
</mx:Application>
2、使用JAVASCRIPT实现
flex 中 使用 JavaScript 写 Cookie/**
*写Cookie
*
* name 保存到Cookie中的名称
* text 保存到Cookie中的实际值
* savetime 保存到Cookie中的时间
*/
function writeCookie(name,text,savetime)
{
getUrl("javascript:function writeCookie(name, value, hours) "+
" { "+
"   var expire = ''; "+
"   if(hours != null) "+
"   { " +
" expire = new Date((new Date()).getTime() + hours * 3600000); " +
" expire = '; expires=' + expire.toGMTString();"+
"   }" +
"   document.cookie = name + '=' + escape(value) + expire;"+
"}   "+
"   writeCookie('"+name+"','"+text+"',"+savetime+"); " );

}

/**
*读Cookie
* flexname flex 中定义的变量
* name 保存到Cookie中的名称
*
flexname 例子:

function set user_name(txt:String) {
         username.text=txt; //可以根据情况保存到对应的变量或域中
}

readCookie("user_name",'name');

*/
function readCookie(flexname,name)
{
getUrl( "   Javascript: "+
"   var name   ='"+name+"' ;"+
"   var cookieValue = ''; "+
"   var search = name + '='; "+
"   if(document.cookie.length > 0) "+
"   {   "+
" offset = document.cookie.indexOf(search); "+
" if (offset != -1) "+
" {   "+
"    offset += search.length; "+
"    end = document.cookie.indexOf(';', offset); "+
"    if (end == -1) end = document.cookie.length; "+
"    cookieValue = unescape(document.cookie.substring(offset, end)) "+
" } "+
"   } "+
"   window.document.getElementsByTagName('object')[0].SetVariable ('"+flexname+"',cookieValue);" );
}
3、使用JSP实现
Cookieapp.jsp 文件

<%@ taglib uri="FlexTagLib" prefix="mm"%>
<SCRIPT LANGUAGE="JavaScript">
<!--
function setCookie(userId) {
    document.cookie = "userId="+escape(userId);
}

function getCookie() {
    var cookieStr = document.cookie;
    var index = cookieStr.indexOf("userId=");
    if (index == -1) return null;
    index = cookieStr.indexOf("=", index) + 1;
    var endstr = cookieStr.indexOf(";", index);
    if (endstr == -1) endstr = cookieStr.length;
    window.document.flexApp.SetVariable("userIdJS", unescape(cookieStr.substring(index, endstr)));
}
-->
</SCRIPT>
<mm:mxml name="flexApp" source="cookie.mxml"/>


cookie.mxml

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" width="300" height="400">

    <mx:Script>
        function setCookie() {
            srv.send({action: 'set', userId: userId.text});
        }

        function getCookie() {
            srv.send({action: 'get'});
        }

        function setCookieJS() {
            getURL("javascript:setCookie('"+userId.text+"')");
        }

        function getCookieJS() {
            getURL("javascript:getCookie()");
        }

        // callback function invoked by the getCookie() JavaScript function in cookieapp.jsp
        function set userIdJS(userIdJS:String) {
            userId.text=userIdJS;
        }
    </mx:Script>

    <mx:HTTPService id="srv" url="cookie.jsp" useProxy="false" method="POST"
        result="userId.text=srv.result.userId"/>

    <mx:Label text="UserId:"/>
    <mx:TextInput id="userId"/>
    <mx:Button label="Set Cookie Value Using JSP" width="220" click="setCookie()"/>
    <mx:Button label="Set Cookie Value Using JavaScript" click="setCookieJS()"/>
    <mx:Button label="Get Cookie Value Using JSP" width="220" click="getCookie()"/>
    <mx:Button label="Get Cookie Value Using JavaScript" width="220" click="getCookieJS()"/>

</mx:Application>
分享到:
评论

相关推荐

    Flex4读取cookie

    要实现Flex4中读取Cookie的功能,我们需要利用Flash Player提供的API。在ActionScript 3.0中,我们可以使用`flash.net.Cookie`类来操作Cookie。这个类提供了一些方法,如`getCookie()`,用于读取特定域名下的Cookie...

    myamfphp 实现php与flex交互

    【标题】"myamfphp 实现php与flex交互"涉及的是在Web开发中使用PHP和Adobe Flex进行数据通信的技术。myAMFPHP是一个开源项目,它提供了在PHP和Flex之间进行高效、低延迟的数据交换机制,使得动态内容可以通过Action ...

    Flex做的登录表单

    Flex是由Adobe公司开发的一种用于构建富互联网应用程序(RIA)的框架...以上就是使用Flex构建登录表单涉及的主要知识点,从界面构建到功能实现,再到错误处理和用户体验优化,每个环节都体现了Flex的强大功能和灵活性。

    基于Flex的时钟实现及代码

    在本项目中,"基于Flex的时钟实现及代码" 涉及到的是使用Flex技术来设计和开发一个动态的时钟组件。 Flex提供了强大的组件库,其中包括可以用于构建各种用户界面元素的基础类,如按钮、文本框等。对于时钟应用来说...

    flex在线书店

    在Flex中,主要涉及的技术包括ActionScript、MXML以及Flex SDK和Flex Builder。ActionScript是Flex的核心编程语言,基于ECMAScript,用于编写业务逻辑和控制应用行为。MXML是一种声明式语言,常用来构建UI组件和定义...

    Flex与Flash相互调用实例

    Flex和Flash是两种在Web开发中广泛使用的技术,它们各自有着独特的优势,但在某些场景下,需要它们相互协作,实现更复杂的功能。本教程通过一个实际的调用实例,展示了Flex与Flash如何相互通信。 Flex是基于...

    Flex +.net 聊天室

    共享对象(SharedObject)是Flex中的一个重要特性,它允许在客户端存储数据,类似于浏览器的Cookie,但提供了更大的存储容量(最大100KB本地,5MB远程)。在聊天室应用中,SharedObject可以用来缓存用户的个人信息,...

    Flex学习—关于Shareobject对象(本地共享对象)

    本文将深入探讨Flex中的一个重要组件——ShareObject,也称为本地共享对象,它允许应用程序在用户计算机上存储数据,实现数据的持久化。 ShareObject是Flex提供的一种轻量级的数据存储解决方案,它类似于Web浏览器...

    flash cookie 完整例子(as源码、mvc3.0源码)

    总之,这个压缩包提供的示例是一个关于如何在Flex 3.0环境中使用ActionScript实现Flash Cookie存储的实践教程。通过研究和理解这些源代码,开发者可以学习到如何在不同的浏览器环境下利用Flash技术进行数据持久化,...

    flex 利用FileReference上传firefox报2038错误

    ### flex 利用FileReference上传firefox报2038错误 ...通过上述分析和讨论,我们可以看出在处理Flex应用中的文件上传问题时,需要综合考虑多个方面的影响因素,并采取适当的措施来解决实际遇到的问题。

    isapi_cookie

    在这里,开发者可能会实现一个Cookie类,包含读取Cookie值、检查有效性、比较签名等功能。 `StdAfx.cpp`、`StdAfx.h`通常是在Visual Studio项目中用于预编译头文件的,它们可以提高编译速度。`StdAfx.h`包含了常用...

    Screenshot.rar_FlashMX/Flex源码_Flex_

    “FlashMX/Flex源码”在描述中被提及为适用于“各大论坛注册程序”,这暗示了这些源码可能涉及到网络表单处理、用户验证、数据提交等常见论坛功能的实现。在Web开发中,这类功能通常涉及HTTP协议、Cookie管理、...

    大文件及文件夹上传(不错的程序)

    经过两天的研究实现了基本的功能。在安全性配置方面暂时的方案是将网站添加...ps:这两天也学了点flex,有哪位知道silverlight或者flex在form-auth方面是需要编码发送数据认证还是可以自动读取同域的cookie发送进行认证?

    前端简单的注册登录(html+css+javascript+jquery+axios)实现

    本文将详细讲解如何使用HTML、CSS、JavaScript、jQuery和axios库来实现这个功能。 首先,HTML(HyperText Markup Language)是网页内容的基础,负责结构化的文档布局。在`index.html`文件中,你需要创建两个表单,...

    mxrose视频聊天室JSP版

    在JSP页面中,开发者可能使用了EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来简化视图层的编码,提高代码的可读性和维护性。 视频聊天功能的实现涉及到音视频编解码技术,如H.264...

    仿华为商城部分前端界面html+css+js

    下面我们将详细讲解这些技术在实现这一目标时所扮演的角色。 首先,HTML(超文本标记语言)是网页内容的基础,它定义了页面的结构和内容。在"tufei-shangcheng"这个项目中,HTML文件会包含各种元素,如头部、导航栏...

    jQuery关闭后不再显示的全屏图片广告代码

    在网页设计中,有时我们需要实现一种功能,即用户关闭一次全屏图片广告后,再次刷新页面或下次访问时,该广告不再出现。这种效果可以通过结合HTML、CSS和JavaScript(特别是jQuery库)来实现,同时利用Cookie技术来...

    ShareObject对象详解

    ShareObject对象是Adobe Flex中用于数据共享的一种机制,它能够帮助开发者在客户端和服务器端之间存储和...在开发过程中,合理利用ShareObject可以提高用户体验,尤其是在需要跨会话保存数据或实现多用户协作的应用中。

    前端面试题整理

    - **存储位置**:`sessionStorage`和`localStorage`数据存储在客户端浏览器中,而cookie数据既存储在客户端也存储在服务器端。 - **存储大小**:`sessionStorage`和`localStorage`的存储容量相对较大,一般为5MB左右...

    木易杨的前端面试小书.pdf

    - Cookie、sessionStorage、localStorage的存储时长和作用域不同,sessionStorage仅在当前会话中有效,而localStorage可长期保存。 - web worker可以运行在浏览器后台的脚本,独立于主线程之外,避免阻塞UI更新。 ...

Global site tag (gtag.js) - Google Analytics