Для хранения информации на стороне клиента в ActionScript предусмотрен объект SharedObject — своеобразный аналог всем известных Cookies. Но возникают ситуации, когда вашему as3 приложению было бы неплохо получить доступ именно к cookies (скажем сайт имеет две версии — html и flash, и вы хотите сохранить какие-то предпочтения пользователя как для html так и для flash версии сайта). Конечно, данную задачу можно решить различными способами, и один из них — это предоставить вашему приложению возможность работать с cookies.
Cookie — это небольшой объем именованных данных, сохраняемых браузером и связанных с определенной веб-страницей или сайтом. В ActionScript не предусмотрено возможностей работы с cookies, однако этими возможностями обладает Javascript, а значит с помощью ExternalInterface можем реализовать необходимый функционал для работы с cookies и в ActionScript. В итоге у меня получился небольшой класс CookieManager.
Чтобы установить пользователю cookie, необходимо воспользоваться методом CookieManager.store(), который в качестве основных параметром принимает имя и значение cookie. Что касается остальных параметров, то тут думаю небесполезным будет сделать кое какие пояснения для тех, кто раньше не сталкивался с cookies.
Кроме имени и значения, у cookie есть четыре необязательных атрибута, которые позволяют управлять временем его жизни, видимостью и безопасностью.
Если вы создадите cookie следующим образом:
-
CookieManager.store("userName", "Vooparker");
То данная информация будет доступна до момента закрытия пользователем браузера. Если мы захотим продлить время жизни cookie, мы должны передать третий параметр, содержащий дату, до которой cookie будет храниться браузером пользователя. Например, сохраняем cookie сроком на неделю:
-
CookieManager.store("userName", "Vooparker", new Date(new Date().getTime() + 1000*60*60*24*7));
Четвертый и пятый аргумент — path и domain — позволяют управлять областью видимости cookie.
Шестой аргумент — secure — отвечает за безопасность передачи cookie. По умолчанию cookie передаются по не защищенному http-соединению, однако если cookie будет помечен как безопасный, то он будет передаваться только через защищенный протокол.
Помните: браузер не обязан сохранять более 20 cookie на один веб-сервер или 4KB данных на один cookie. Напоследок приведу пример использования CookieManager:
-
package
-
{
-
import ru.riafactory.net.CookieManager;
-
-
public class CookieManagerExample
-
{
-
public function CookieManagerExample ()
-
{
-
// Сохраняем cookie на неделю
-
CookieManager.store("userName", "Vooparker", new Date(new Date().getTime() + 1000*60*60*24*7));
-
-
// Считываем значение cookie по его имени
-
var userName:String = CookieManager.read("userName");
-
-
// Получаем все доступные и действительные cookie в виде объекта
-
var cookies:Object = CookieManager.cookies;
-
-
// Удаляем cookie
-
CookieManager.remove("userName");
-
}
-
}
-
}
На сегодня все ![]()
Удачи!
[...] Обязательно прочтите статью «Работа с сookies в as3 приложениях» от Алексея «Vooparker» Аникутина, в которой как раз и [...]