Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как получить список всех SharedObject? (http://www.flasher.ru/forum/showthread.php?t=119504)

PgeorgyV 22.12.2008 17:21

как получить список всех SharedObject?
 
Ну, собственно, вопрос в теме, как узнать о существовании и получить имена всех SharedObject, доступных данной флешке
Это вообще возможно?

Добавлено через 43 часа 20 минут
Может быть тогда кто-нибудь скажет сколько они живут?

ImpassIve 15.01.2009 21:11

Ну, может быть мой подход и не самый верный, но в 8-м Flash'е я бы сделал примерно так:
1. Задача переменных -
Код:

_root.f = SharedObject.getLocal();
_root.f.data.a1 = 34;
_root.f.data.a2 = 30;
_root.f.data.a3 = 24;
...

2. Затем их чтение -
Код:

_root.n = SharedObject.getLocal();
for (i in _root.n.data) {
        trace(i+" = "+_root.n.data[i]);
}

В появившемся окне будет выдано:
Код:

a3 = 24
a2 = 30
a1 = 34

Ну, а вместо trace() можно сразу поставить обработку этих переменных.

Wolsh 16.01.2009 02:07

ImpassIve : У вас ведь здесь один SO, нет? Вопрос совсем о другом.
Я думал об этом, для сейвов игры необходимая вещь. Пришел к выводу, что надо делать специальный SO-реестр, который [каждая] флэшка будет считывать, и перед записью какого-то своего сейва добавлять данные о нем в сейв-реестр. Т.е. работать с двумя объектами - своим конкретным сейвом и общим для всех списком уже существующих сейвов.

ENDrain 16.01.2009 13:13

Для этого нужно, чтобы у сейвов были однотипные названия - "сейв1", "сейв2" и т.д., и чтобы в общем реестре было значение, указывающее общее кол-во сейвов. Тогда:

Код AS1/AS2:

//объявляешь переменную
for (var i:Number = 0; i<число_из_реестра; i++){
    переменная.getLocal("сейв"+i);
    // делаешь че тебе надо
};

А живут они, по моим наблюдениям, бесконечно.

iNils 16.01.2009 13:16

ENDrain, для оформления своего кода, надо использовать теги [code][/code].

Wolsh 16.01.2009 15:35

ENDrain, ну если пойти таким путем, то и реестр не нужен - просто обработать ошибку, что сейва с таким именем нет и прекратить запрос из цикла.
Реестр удобен для игры, потому что можно предоставить игроку список его сейвов для выбора, что загружать, и тем, что можно именно задать любое имя сейву, а в реестре сохранять не количество сейвов, а массив имен, дат и т.д.

ENDrain 16.01.2009 15:49

Согласен.

Код AS1/AS2:

for (var i:Number = 0; i<большое_число; i++){
    переменная.getLocal("сейв"+i);
    if (переменная.значение_для_проверки == undefined) {
        break;
    } else {
    // делаешь че тебе надо
    };
};



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

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