Просмотр полной версии : Shared Object сохранение нескольких логинов
greenhill
28.02.2011, 15:46
Добрый день!
Такая вот задача? запоминать в Shared Object пять последних логинов.
so = SharedObject.getLocal("auth_shared_obj");
so.data.now = new Date().time;
so.data.name = login.text;
so.flush();
Как мне организовать в данном случае сохранение до пяти логинов?
so.data.name = login.text; - данный код просто перезаписывает значение
Спасибо!
gloomyBrain
28.02.2011, 15:59
А в чем проблема?
читаем все записи
если записей меньше 5, дописываем новую
если 5 или больше -
record5 = record4;
record4 = record3;
record3 = record2;
record2 = record1;
record1 = new record;
cleptoman
28.02.2011, 16:03
so.data.logins = new Array();
не?
so может хранить не только простые типы, но и ряд ссылочных..т.е. Object/Array можно смело юзать.
greenhill
28.02.2011, 16:25
А в чем проблема?
Проблема в том, что нет универсальности, может понадобиться хранить 100 записей.
cleptoman, а можете объяснить как правильно использовать в данном случае массив.
У меня есть класс, которые отвечает за запись в шеред обджектс. Задача, каждый раз, когда я захожу в клиент, записывать логин. если я напишу so.data.logins = new Array(); , то это будет постоянное обнуление массива, как тут записать, что-то не соображу?
if (!so.data.logins) {
so.data.logins = [];
}
@greenhill эх...
var logins:Array = [];
if(so.data.logins != [] && (so.data.logins as Array).length < 5 )
arr.push(new Log());
so.data.logins = arr;
gloomyBrain
28.02.2011, 17:01
@in4core эх...
// максимальное число логинов
public static const MAX_LOGINS:uint = 5;
// создаем новый массив, если это необходимо
so.logins = (so.logins && so.logins is Array) ? so.logins : [];
// добавляем новую запись в начало массива
var len:int = so.logins.unshift("Новый логин");
// какая теперь должны быть длина у массива?
len = (len < MAX_LOGINS) ? len : MAX_LOGINS;
// удаляем все элементы массива с индексом больше MAX_LOGINS
so.logins.length = len;
greenhill
28.02.2011, 17:04
глупый вопрос :) Спасибо!
@in4core эх... Ха ха... я не пишу справки, я даю примеры
gloomyBrain
28.02.2011, 17:32
я даю примеры
var a:Array = [];
trace(a == []); // false
Ха ха...
Хоть бы проверяли свои примеры на адекватность
cleptoman
28.02.2011, 17:40
@in4core, я вас записую )
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.