日期:2012-10-29  浏览次数:20830 次

Written by: Günter Hoffellner
Translated by: Bernhard Spuida
First published: 9/8/2000

Setting or reading cookies in Flash may be necessary for example to extend the personalization of a web
site to the Flash file.

Flash does not support direct setting and reading of cookies. Thus, you either have to take the often
published detour of using JavaScript or you just use ASP scripts to set and read cookies. This has among
other things the advantage that Flash can access cookies even when JavaScript is disabled.

The Flash File
In the following the Flash file which can read and set cookies at the client is described. The file calls
the ASP Scripts testCookies.asp, setCookies.asp and getCookies.asp to gain access to the browser's cookies
via ASP.

The Flash file tests for the permission to set client side cookies and allows entering data that is to be
stored in a cookie. The file also reads the cookie content and displays it on screen.

There are two files in the download: one .fla in English, and a second one in German. The compiled .swf is
available in German only.

The User Interface
The user interface is divided into three parts which are described in the following sections.


Figure 1: User interface in Flash

Step 1:
The user clicks the 'START TEST' button to trigger the test on the server to determine whether the browser
of the page visitor accepts cookies. The status message indicates whether the browser accepts cookies or
not.

Step 2:
In the case of cookies being accepted, the Flash movie runs on to the second part and waits for data to be
saved in a cookie. With a click on the 'SEND DATA' button, the data is transmitted to the server.

Step 3:
In the last part, the server passes the cookie data back to the Flash file where they are written into the
text fields.

The Scripts of the Flash File
The graphic part of the Flash file is built according to standard procedure and is not described in detail
for this reason.

The layer with the name 'Sourcecode' is important, as this contains the source code of the Flash file. We
will go into the details of this now.


Figure 2: Time line in Flash


//Frame 1
Set Variable: "cookies" = "false"
stop


The variable 'cookies' is initialised with the string 'false'. 'false' is used as the server does not
return the boolean values true and false, but a string with the value of "true" or "false". Flash waits
for the button click for starting the cookie test.


//Frame 2, Label step1
Load Variables ("/testcookies.asp", 0)


The file 'testcookies.asp' is called and returns 'true' or 'false' (Cookies accepted - Cookies not
accepted).


//Frame10
If (cookies eq "true")
Set Variable: "cookietest" = "Cookies can be set"
Stop
Else
Set Variable: "cookietest" = "Cookies not allowed. Please enable."
Go to and Stop ("nocookies")
End If


In Frame 10 a different message is displayed in the status field depending on the result of the cookie
test.

If cookies are not accepted, Flash jumps to the label 'nocookies', stops there and will not accept any
input but another cookie test. In the if-condition cookies eq "true" is set in quotes as the server does
not really return the boolean values of true or false, but a string which is immediately tested as such.
Also note that the string comparison requires 'eq' instead of '='.

The 'stop' command forces Flash to wait for a click event of the 'SEND DATA' button. Sending the cookie
data to the server happens as follows:


//