tags:

views:

57

answers:

1

Hi I need to save email-id in my login form through the cookies. if I use shared object I am able to save but my requirement is need to save in cookies. How can I save? I got sample code from net. Attaching that code `package com {

import flash.external.ExternalInterface; 

/** 
 * The Cookie class provides a simple way to create or access 
 * cookies in the embedding HTML document of the application. 
 *  
 */ 
public class Cookie { 

    /** 
     * Flag if the class was properly initialized. 
     */ 
    private static var _initialized:Boolean = false; 

    /** 
     * Name of the cookie. 
     */ 
    private var _name:String; 

    /** 
     * Contents of the cookie. 
     */ 
    private var _value:String; 

    /** 
     * Flag indicating if a cookie was just created. It is <code>true</code> 
     * when the cookie did not exist before and <code>false</code> otherwise. 
     */ 
    private var _isNew:Boolean; 

    /** 
     * Name of the external javascript function used for getting 
     * cookie information. 
     */ 
    private static const GET_COOKIE:String = "cookieGetCookie"; 

    /** 
     * Name of the external javascript function used for setting 
     * cookie information. 
     */ 
    private static const SET_COOKIE:String = "cookieSetCookie"; 

    /** 
     * Javascript code to define the GET_COOKIE function. 
     */ 
    private static var FUNCTION_GET_COOKIE:String = 
            "function () { " + 
                    "if (document." + GET_COOKIE + " == null) {" + 
                            GET_COOKIE + " = function (name) { " +  
                                    "if (document.cookie) {" +  
                                            "cookies = document.cookie.split('; ');" +  
                                            "for (i = 0; i < cookies.length; i++) {" +  
                                                    "param = cookies[i].split('=', 2);" +  
                                                    "if (decodeURIComponent(param[0]) == name) {" +  
                                                            "value = decodeURIComponent(param[1]);" +  
                                                            "return value;" +  
                                                    "}" +  
                                            "}" +  
                                    "}" +  
                                    "return null;" +  
                            "};" + 
                    "}" + 
            "}"; 

    /** 
     * Javascript code to define the SET_COOKIE function. 
     */ 
    private static var FUNCTION_SET_COOKIE:String = 
            "function () { " + 
                    "if (document." + SET_COOKIE + " == null) {" + 
                            SET_COOKIE + " = function (name, value) { " +  
                                    "document.cookie = name + '=' + value;" +  
                            "};" + 
                    "}" + 
            "}"; 

    /** 
     * Initializes the class by injecting javascript code into 
     * the embedding document. If the class was already initialized 
     * before, this method does nothing. 
     */ 
    private static function initialize():void { 
            if (Cookie._initialized) { 
                    return; 
            } 

            if (!ExternalInterface.available) { 
                    throw new Error("ExternalInterface is not available in this container. Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime are required."); 
            } 

            // Add functions to DOM if they aren't already there 
            ExternalInterface.call(FUNCTION_GET_COOKIE); 
            ExternalInterface.call(FUNCTION_SET_COOKIE); 

            Cookie._initialized = true; 
    } 

    /** 
     * Creates a new Cookie object. If a cookie with the specified 
     * name already exists, the existing value is used. Otherwise 
     * a new cookie is created as soon as a value is assigned to it. 
     *  
     * @param name The name of the cookie 
     */ 
    public function Cookie(name:String) { 
            Cookie.initialize(); 

            this._name = name; 
            this._value = ExternalInterface.call(GET_COOKIE, name) as String; 

            this._isNew = this._value == null; 
    } 

    /** 
     * The name of the cookie. 
     */ 
    public function get name():String { 
            return this._name; 
    } 

    /** 
     * The value of the cookie. If it is a new cookie, it is not 
     * made persistent until a value is assigned to it. 
     */ 
    public function get value():String { 
            return this._value; 
    } 

    /** 
     * @private 
     */ 
    public function set value(value:String):void { 
            this._value = value; 

            ExternalInterface.call(SET_COOKIE, this._name, this._value); 
    } 

    /** 
     * The <code>isNew</code> property indicates if the cookie 
     * already exists or not. 
     */ 
    public function get isNew():Boolean { 
            return this._isNew; 
    } 
} 

} `How can I use this? I need to integrate this with jsp by default swf file is embedded in jsp. How can I save only username (email-id)? If user reenters again it should show in dropdown. how can I pass text input text into the cookie? Please help me in these Thanks in advance.

+1  A: 

The posted code uses the ExternalInterface class to access the browsers cookies through JavaScript. I guess your question is about how to use that class. Here you go:

// Initialize the object: 
var cookie:Cookie = new Cookie("NAME OF THE COOKIE");

// Retrieve and trace the value of the cookie:
trace(cookie.value());

// Set new value for the cookie:
cookie.value = "NEW VALUE";

I cannot answer the remaining questions about the drop down. You'll need to be more specific what your actual question is.

ilikeorangutans
Hi ilikeorangutans, Thanks for your response what is the name of the cookie? Can I give what ever the text i am entering into the text input {textinputId.text} in name of the cookie and how can I retrieve the value again to display in text input like jsp cookies. If you can help me that would be great helpfull.Thanks in advance.
praveen
The name of the cookie should be constant. The browser stores cookies as name-value pairs. So name it under a well known name. The value of your text input would go into the value field. To access the value, use the getter for value.
ilikeorangutans
ok I got it Thanks, how can I display cookie values in a context menu (or) in a list , when I enter a first character the total name should be display it in list or dropdown?Is there any idea about how to proceeds this? Thanks in advance.
praveen
First of all, if my above answer helped you solve your problem please accept it as a response. Second, what you are asking for seems like a separate question, so please open a new question.
ilikeorangutans
Yes it is working.Thanks
praveen
Please read the stackoverflow FAQ and accept the answer if it is what you are looking for.
ilikeorangutans