actionscript länge - Wie kann ich innerhalb von Flash auf Cookies zugreifen?





meta title (6)


Ich glaube, Flash-Objekte haben Funktionen, die über Javascript zugänglich sind. Wenn es also keinen einfacheren Weg gibt, können Sie zumindest einen Javascript-Onload-Handler verwenden und document.cookie von außen an Ihre Flash-App übergeben.

Mehr Infos hier: http://www.permadi.com/tutorial/flashjscommand/

Ich suche nach Cookie-Werten für dieselbe Domain in einem Flash-Film. Ist das möglich?

Mal sehen, ich lasse einen Benutzer eine Variable foo setzen und ich speichere ihn mit einer beliebigen Web-Programmiersprache. Ich kann über diese Sprache einfach darauf zugreifen, möchte aber über den Flash-Film darauf zugreifen, ohne ihn über die HTML-Seite auszudrucken.




Wenn Sie nur Daten speichern und abrufen möchten, möchten Sie wahrscheinlich die SharedObject-Klasse verwenden. Weitere Informationen hierzu finden Sie in der SharedObject-Referenz von Adobe .

Wenn Sie auf die HTTP-Cookies zugreifen möchten, müssen Sie ExternalInterface verwenden, um mit JavaScript zu kommunizieren. Wie wir das hier machen, ist eine Hilfsklasse namens HTTPCookies.

HTTPCookies.as:

import flash.external.ExternalInterface;

public class HTTPCookies
{
    public static function getCookie(key:String):*
    {
        return ExternalInterface.call("getCookie", key);
    }

    public static function setCookie(key:String, val:*):void
    {
        ExternalInterface.call("setCookie", key, val);
    }
}

Sie müssen sicherstellen, dass Sie Javascript mit dem Parameter 'allowScriptAccess' in Ihrem Flash-Objekt aktivieren.

Dann müssen Sie ein paar JavaScript-Funktionen, getCookie und setCookie, wie folgt erstellen (mit Dank an quirksmode.org )

HTTPCookies.js:

function getCookie(key)
{
    var cookieValue = null;

    if (key)
    {
        var cookieSearch = key + "=";

        if (document.cookie)
        {
            var cookieArray = document.cookie.split(";");
            for (var i = 0; i < cookieArray.length; i++)
            {
                var cookieString = cookieArray[i];

                // skip past leading spaces
                while (cookieString.charAt(0) == ' ')
                {
                    cookieString = cookieString.substr(1);
                }

                // extract the actual value
                if (cookieString.indexOf(cookieSearch) == 0)
                {
                    cookieValue = cookieString.substr(cookieSearch.length);
                }
            }
        }
    }

    return cookieValue;
}

function setCookie(key, val)
{
    if (key)
    {
        var date = new Date();

        if (val != null)
        {
            // expires in one year
            date.setTime(date.getTime() + (365*24*60*60*1000));
            document.cookie = key + "=" + val + "; expires=" + date.toGMTString();
        }
        else
        {
            // expires yesterday
            date.setTime(date.getTime() - (24*60*60*1000));
            document.cookie = key + "=; expires=" + date.toGMTString();
        }
    }
}

Sobald Sie HTTPCookies.as in Ihrem Flash-Projekt und HTTPCookies.js von Ihrer Webseite geladen haben, sollten Sie getCookie und setCookie in Ihrem Flash-Movie aufrufen können, um HTTP-Cookies zu erhalten oder festzulegen.

Dies funktioniert nur bei sehr einfachen Werten - Strings oder Zahlen - aber für alles, was komplizierter ist, sollten Sie SharedObject wirklich verwenden.




getCookie-Methode in HTTPCookies.as sollte "return" -Anweisung verwenden.

import flash.external.ExternalInterface;
public class HTTPCookies
{    
  public static function getCookie(key:String):*   
  {
        return ExternalInterface.call("getCookie", key);    
  }
  public static function setCookie(key:String, val:*):void 
  {
        ExternalInterface.call("setCookie", key, val);    
  }
}



Einige Googles zeigen, dass dies mithilfe von Abfragezeichenfolgen möglich ist:

Für Webanwendungen können Sie Werte nach URL-Parametern an SWF übergeben und (mit Aktionsskript in SWF) in der Sandbox speichern.




Sie können Cookies (Local Shared Object) vom Flash lesen und schreiben. Flash-Cookies werden auf Ihrem PC in einem Verzeichnis mit dem Namen Ihrer Domain gespeichert. Diese Verzeichnisse befinden sich unter:

[Root drive]:\Documents and Settings\[username]\Application Data\Macromedia\Flash Player\#SharedObjects\

Dieser Artikel von Adobe ist ein guter Anfang.








flash actionscript cookies