
Код AS1/AS2:
class system.Configuration {
private static var format:String = ".ini";
private static var lang:String = null;
private static var def:Object = {};
private static var t;
private var d:Date;
public function Configuration() {
super();
t = new system.superXML();
trace("*ini__config");
}
private function setConfig(b:Boolean):String {
def = new system.Engine();
if (b) {
trace("\rSystem language: " + def.getLanguage().toUpperCase());
}
return def.getLanguage();
}
private function getConfig(b:Boolean):Void {
lang = new String((setConfig() == "ru") ? "RUS" : "ENG");
t._load("config" + "_" + lang + format + (b == true ? "?" + d.getSeconds() : ''));
t.getCallBack(unlockParametrs);
}
private function unlockParametrs() {
trace("Config_ready" + "\rLanguage is: " + setConfig(false));
var main = t.getNodes();
trace("\r!" + main);
}
}
Класс 1. ВО время выполнения unlockParameters функция setConfig(false) выдает значение undefined.

Код AS1/AS2:
class system.superXML {
private var xml;
private var b:Boolean=false;
private var args;
private var _obj;
function superXML() {
xml = new XML();
xml.ignoreWhite = true;
xml.onLoad = mx.utils.Delegate.create(this, eventSuccess);
}
function eventSuccess(success) {
if (!success) {
clearInterval(_obj);
this.args();
trace("sorry no files exist");
}
}
function getCallBack(f) {
args = f;
}
function _load(d) {
xml.load(d);
clearInterval(_obj);
_obj = setInterval(this, "_check", 50);
}
function getNodes() {
return xml.firstChild.childNodes;
}
function getLength() {
return xml.firstChild.childNodes.length;
}
function getNodeAt(o) {
return xml.firstChild.childNodes[o];
}
function getAttributes(o, split) {
if (split == undefined || o == undefined) {
o = "title";
split = 1;
}
var attributesArray = [];
for (var i = 0; i<xml.firstChild.childNodes.length/split; i++) {
attributesArray.push(xml.firstChild.childNodes[i].attributes[o]);
}
return attributesArray;
}
function getTopNode() {
return xml.firstChild;
}
function getTopName() {
return xml.firstChild.nodeName;
}
function _check() {
var o = xml.getBytesTotal();
var v = xml.getBytesLoaded();
if (v/o != 1) {
return;
} else {
clearInterval(_obj);
this.args(xml);
}
}
}
Класс 2. Работаем с getCallBack
И так вопрос почему 1 класс дает значение undefined после загрузки xml через второй. У него что меняется путь this ?
Добавлено через 10 минут
Вопрос снят))) на меня нахлынуло

Код AS1/AS2:
t.getCallBack(mx.utils.Delegate.create(this,unlockParametrs));