Форум 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+push Array (http://www.flasher.ru/forum/showthread.php?t=157831)

sersir 11.06.2011 12:21

Sharedobject+push Array
 
Всем привет. Посмотрел все посты по ключевому запросу: "Sharedobject", но не нашёл пост по данной проблеме.
Суть проблемы такова: не могу сохранить новый массив в список, при обновлении, пытаюсь тресировать нужный массив, но выдаёт undefined.

Вот код:
Код AS1/AS2:

var so:SharedObject = SharedObject.getLocal("kookie1");
if(param==undefined){
var param:Array = ["zero","first","second"];
}
so.data.param = param;
so.flush();
trace(so.data.param[3]);
btn.onPress=function(){
        so.data.param.push("balls");
        param.push("balls");
        so.flush();
        trace(so.data.param[3]);
}

Всем спасибо, кто ответит.

dark256 11.06.2011 12:54

Я сегодня пьяный и добрый.
Плюсовать меня тебе неделю! :)

Код AS1/AS2:

function loadSettings( file, defaults ){
                var answer = new Object()
                var newset = SharedObject.getLocal( file )
 
                if ( newset.data.dat != undefined )
                {
                        trace(file+" ### Settings Loaded. OK")
                        answer = newset.data.dat
                }
                else
                {
                        trace(file+" ### No Settings")
                        saveSettings( file, defaults )
                        answer = defaults
                }
                return answer               
}
function saveSettings( file, obj ){
                trace(file+" ### Save settings")
                var saveset = SharedObject.getLocal( file )       
                saveset.data.dat = obj
                saveset.flush()               
}

Код AS1/AS2:

var SOUNDSET = loadSettings( "My_Sound_setts", { SND: false, MUS:false } )
saveSettings("My_Sound_setts", SOUNDSET )


sersir 11.06.2011 13:33

Спасибо, что ответили, но мне нужно добавить массив в список, чтобы он сохранялся последним в очереди, то бишь через push. Если я правильно понял логику вашего кода, вы мне показали как работает сам SharedObject.

olexandr 11.06.2011 13:55

не знаю, в чем вы допустили ошибку. в коде или понимании SharedObject, но этот код работает вполне адекватно:

Код AS1/AS2:

var so:SharedObject = SharedObject.getLocal("kookie1");
 
var param:Array;
 
if (!so.data.param) {
        param = ["zero", "first", "second"];
        so.data.param = param;
        so.flush();
} else {
        param = so.data.param;
}
 
trace(param[3]);
 
btn.onPress = function() {
        so.data.param.push("balls");
        param.push("balls");
        so.flush();
        trace(so.data.param[3]);
};


dark256 11.06.2011 13:57

Не знаю, что вы имеете ввиду под очередью, но вы массив ковыряете как хотите - а потом saveSettings.

И оно будет работать и вам не придется уже париться с этими ШаредОбжектами и искать где что не так.
Ибо я с ними напарился вволю.

sersir 11.06.2011 14:04

olexandr, после перезагрузки должен выводится массив balls, но вместо того выводится undefined. dark256 а что делает второй кусок кода ?
Код AS1/AS2:

var SOUNDSET = loadSettings( "My_Sound_setts", { SND: false, MUS:false } )
saveSettings("My_Sound_setts", SOUNDSET )


olexandr 11.06.2011 14:57

sersir, после перезагрузки у меня выводится как раз balls
вы думаете, я стал бы постить сюда код, который у меня не работал?

sersir 11.06.2011 16:27

olexandr огромное спасибо, не полностью прочитал ваш код, я думал вы мой скопировали.

dark256 12.06.2011 11:28

Цитата:

dark256 а что делает второй кусок кода ?
это пример использования

addertu 25.06.2011 12:27

Цитата:

Сообщение от dark256 (Сообщение 1002913)
Я сегодня пьяный и добрый.
Плюсовать меня тебе неделю! :)

Код AS1/AS2:

function loadSettings( file, defaults ){
                var answer = new Object()
                var newset = SharedObject.getLocal( file )
 
                if ( newset.data.dat != undefined )
                {
                        trace(file+" ### Settings Loaded. OK")
                        answer = newset.data.dat
                }
                else
                {
                        trace(file+" ### No Settings")
                        saveSettings( file, defaults )
                        answer = defaults
                }
                return answer               
}
function saveSettings( file, obj ){
                trace(file+" ### Save settings")
                var saveset = SharedObject.getLocal( file )       
                saveset.data.dat = obj
                saveset.flush()               
}

Код AS1/AS2:

var SOUNDSET = loadSettings( "My_Sound_setts", { SND: false, MUS:false } )
saveSettings("My_Sound_setts", SOUNDSET )


А можешь создать готовый fla файл в котором реализовано сохранение текста во внешний файл и последующая его загрузка от туда в переменную в качестве ее значения? а то тут какие то не понятные куски кода. Я ничего в них не пойму.


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

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