
Framework: Config & Data
Рассказал про Profile — можно сразу рассказать и про реализацию игровых конфигов.
По сути это тот же самый Profile, только он сам сохраняется по специальному имени каждый раз, когда изменяется переменная.
Утилитный класс, производящий клонирование объектов. Используется в классах Profile и Config.
Config
elmortem.core.ConfigПо сути это тот же самый Profile, только он сам сохраняется по специальному имени каждый раз, когда изменяется переменная.
package elmortem.core {
import flash.net.SharedObject;
import elmortem.utils.Data;
public class Config {
static public function setVar(name:String, value:*):void {
trace("setConfig: "+name+" = "+value);
var so:SharedObject = SharedObject.getLocal("__config__");
so.data[name] = Data.clone(value);
so.flush();
}
static public function getVar(name:String, def:* = ""):* {
trace("getConfig: "+name);
var so:SharedObject = SharedObject.getLocal("__config__");
if (so.data[name] != undefined) return so.data[name]; else return def;
}
}
}
Data
elmortem.utils.DataУтилитный класс, производящий клонирование объектов. Используется в классах Profile и Config.
package elmortem.utils {
import flash.display.DisplayObject;
import flash.utils.ByteArray;
public class Data {
static public function clone(source:*):* {
try {
var copier:ByteArray = new ByteArray();
copier.writeObject(source);
copier.position = 0;
return (copier.readObject());
} catch(e:Error) {
trace(e.message);
return source;
}
}
static public function toBool(d:*):Boolean {
if (d is String && d == "true") return true;
if (d is int && d == 1) return true;
return false;
}
}
}
- +3
- elmortem
Комментарии (2)