Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Shared Object сохранение нескольких логинов (http://www.flasher.ru/forum/showthread.php?t=151470)

greenhill 28.02.2011 15:46

Shared Object сохранение нескольких логинов
 
Добрый день!
Такая вот задача? запоминать в Shared Object пять последних логинов.

Код AS3:

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 или больше -
Код AS3:

record5 = record4;
record4 = record3;
record3 = record2;
record2 = record1;
 
record1 = new record;


cleptoman 28.02.2011 16:03

Код AS3:

so.data.logins = new Array();

не?
so может хранить не только простые типы, но и ряд ссылочных..т.е. Object/Array можно смело юзать.

greenhill 28.02.2011 16:25

Цитата:

А в чем проблема?
Проблема в том, что нет универсальности, может понадобиться хранить 100 записей.

cleptoman, а можете объяснить как правильно использовать в данном случае массив.
У меня есть класс, которые отвечает за запись в шеред обджектс. Задача, каждый раз, когда я захожу в клиент, записывать логин. если я напишу so.data.logins = new Array(); , то это будет постоянное обнуление массива, как тут записать, что-то не соображу?

iNils 28.02.2011 16:31

Код AS3:

if (!so.data.logins) {
        so.data.logins = [];
}


in4core 28.02.2011 16:33

@greenhill эх...

Код AS3:

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 эх...
Код AS3:

// максимальное число логинов
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 28.02.2011 17:14

Цитата:

@in4core эх...
Ха ха... я не пишу справки, я даю примеры

gloomyBrain 28.02.2011 17:32

Цитата:

я даю примеры
Код AS3:

var a:Array = [];
trace(a == []); // false

Ха ха...
Хоть бы проверяли свои примеры на адекватность


Часовой пояс GMT +4, время: 20:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.