Local SharedObject (LSO) подойдет для хранения данных клиента на его машине; сервер разгружается и освобождается от хранения избыточной информации. Сохранение информации происходит мгновенно. LSO поддерживается Flash Player c версии 6.0.40.0; не описан в стандартной документации по Flash. Компания Macromedia дала своим поклонникам действительно мощный инструмент, но не рассказала об этом в документации. LSO хранит информацию на машине клиента так же, как это делают cookies — создавая в разрешенном месте файл разрешенного размера.
Создание Local SharedObject с именем "theFlashCookie"
theLocalSharedObject = sharedobject.getLocal("theFlashCookie");
Сохранение значения "userName" в свойстве "name" объекта 'theFlashCookie'
theLocalSharedObject.data.userName = userName;
Получение значения свойства "name"
userName = theLocalSharedObject.data.userName;
Этого достаточно, чтобы забыть об отсылке переменных на сервер, связанном с этим ожиданием ответа и прочих проблемах клиент-серверных отношений.
Можно запоминать языковые настройки, смещение часового пояса, пароль и другие личные настройки пользователей, можно хранить информацию о пройденных уровнях онлайн-игры на машине игрока, сохраняя данные в разных LSO или в разных свойствах одного и того же LSO.
Максимум пользы Local SharedObject приносит в случаях, когда работа с сервером нежелательна или невозможна.
//Создание Local SharedObject с именем 'theFlashCookie'
theLocalSharedObject = sharedobject.getLocal("theFlashCookie");
bt_setLocalData.onRelease = setLocalData;
bt_getLocalData.onRelease = getLocalData;
bt_resetCounter.onRelease = resetVisitCounter;
getLocalData();
stop();
//Сохранение значения 'name' в свойстве 'name' объекта 'theFlashCookie'
function setLocalData () {
theLocalSharedObject.data.name = name.text;
}
//Получение значения свойства 'name'
function getLocalData () {
name_.text = theLocalSharedObject.data.name;
numOfVisits.text = theLocalSharedObject.data.visitCounter;
}
//За один визит увеличивает показания счетчика на единицу
function setVisitCounter () {
theLocalSharedObject.data.visitCounter++;
}
//Cбрасывает показания счетчика
function resetVisitCounter () {
theLocalSharedObject.data.visitCounter = 0;
getLocalData();
}