Как стать автором
Обновить

Local Shared Objects — Флеш куки

Время на прочтение3 мин
Количество просмотров22K
Вступления

Приветствую жителей хабры!
Часто бывает случаи, где нас обязывают сохранять данные над которыми работает пользователь во Flash (очки игры, оформления рабочей области и т.д.).
Многие думают что нужно создавать мост между PHP и Flash. В некоторых случаях это нужно делать, для того чтобы хранить долгое время в сети данные о тех или иных действиях пользователя. Но иногда требуется на стороне клиента сохранить данные, которые предназначены только для определения того, какую функцию пользователь выбрал и в зависимости от этого предоставить ему нужную информацию. Мы сегодня рассмотрим сохранения данных на компьютере, а именно Local Shared Object (далее LSO), что в народе иногда звется флеш куки.

LSO

Немного о технологии

Local Shared Objects — обычно называемый Flash cookie, это тип данных, хранящихся в виде файла на компьютере пользователя. На данный момент все версии Flash Player используют LSO.
Обычно с настройками по-умолчанию, Flash запрашивает у пользователя разрешения о хранении локальных файлов на компьютере. Уверен многие это видели, так что некоторые из читателей уже понимают о чем я здесь пишу. Как и с обычными cookie, онлайн банки, рекламодатели или торговцы могут использовать LSO для целей учета и контроля. Flash cookie не могут быть использованы третьими лицами на других сайтах. К примеру, LSO от сайта “www.site.ru” не могут быть прочитаны сайтом “www.site.com”.
Если пользователь избавляется от cookie сайта, то уникальный ID-cookie будет присвоен новому файлу, используя данные Flash в качестве “резервного копирования”.
Пользователь может отказаться от хранения LSO используя глобальные настройки параметров хранения в Setting Manager на официальном сайте Adobe.

Setting Manager

Хранения LSO на компьютере

Расположения файлов LSO по-умолчанию, обычно зависит от операционной системы. LSO хранятся на компьютере под форматом “.SOL”.

Windows 7:
AppData/Roaming/Macromedia/#SharedObjects/

Linux:
~/.macromedia/Flash_player/

Mac OS X:
~ / Library / Preferences / Macromedia / Flash Player / # SharedObjects

От теории к практике

Я подготовил небольшой пример на ActionScript3, для того чтобы вы могли увидеть, как работать с LSO в “реальных условиях”.
Мой пример являет собой сцену на которой расположены:
  • две кнопки с именами butt и butt1 ;
  • полe ввода с именем texts ;
  • палитра цветов — pal ;
  • текстовое поле — label ;
  • а также MovieClip — fon .

Кнопки служат нам для того, чтобы очищать и заносить данные в переменные, а также сохранять их в cookie.
Поле ввода используются для того, чтобы пользователь мог ввести данные, которые хочет занести в переменную, а с помощью палитры цветов выбрать цвет фона нашей сцены.

import fl.events.ColorPickerEvent;
import flash.geom.ColorTransform;
import flash.events.MouseEvent;
 
var Save:SharedObject;
Save = SharedObject.getLocal(«application-name»);
 
label.text =«Строка: '» + Save.data.save1 + "'";
pal.selectedColor = Save.data.save2;
 
var color:ColorTransform = fon.transform.colorTransform;
 
 
fon.addEventListener(ColorPickerEvent.CHANGE, col);
butt.addEventListener(MouseEvent.CLICK, ok);
butt1.addEventListener(MouseEvent.CLICK, ex);
 
 
function ok(e:MouseEvent):void
{
Save.data.save1 =«Вы вернулись » +  texts.text;
label.text = «Привет »+texts.text;
}
 
function ex(e:MouseEvent):void
{
delete Save.data.save1;
label.text = «Exit»;
}
 
function col(e:ColorPickerEvent):void
{
Save.data.save2 = color.color = pal.selectedColor;
fon.transform.colorTransform = color;
}


Palitra

Вывод

Вот и подошли мы к концу нашего эксперимента и теперь можем смело сказать, что не стоит боятся такой штуковины как Local Shared Objects.
После проделанной работы, я сразу зашел в папку где хранятся cookie. Свой же я нашел в папочке localhost, а в нем файл application-name.sol.
Открыв его увидел следующие:
ї QTCSO application-name save2Ѓ save1=Р’С‹ вернулись Ruslan

Комментарий от Emin
Крайне желательно использовать метод flush() для принудительного сохранения. Чтобы не возникало проблем при обращении к данным.

До 100 КБ Flash не запрашивает разрешение о хранении. Если больше 100 КБ, то тогда появляется запрос.

Всем спасибо за то что прочитали мою статью!
Теги:
Хабы:
Всего голосов 6: ↑5 и ↓1+4
Комментарии6

Публикации

Ближайшие события