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(); } |