Впервые за некоторое время я делаю какую-то работу в Actionscript 2.0 (очень простые вещи, просто извлекаю контент из текстового файла), и я не могу понять, почему я так непредсказуемо вывод здесь.
Иногда, когда я тестирую сборку простого сценария, подобного этому, переменные отображаются как неопределенные, а иногда нет.
Я бы предположил, что это может быть из-за того, что данные, загруженные из cookware.txt, еще не были загружены в память, но это не так - согласно словарю Actionscript здесь , функция onLoad срабатывает только при загрузке данных, доступных для остальной части программы.
Может кто-нибудь пролить свет? Или видите, почему это может происходить?
Содержимое cookware.txt:
pots=44&kettles=43
Код
_global.pots;
_global.kettles;
trace('variables not assigned')
trace('before: kettles (global) = ' + _global.kettles);
trace('before: pots (global) = ' + _global.pots);
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean):Void {
if (success) {
trace('variables clearly loaded: kettles = ' + kettles);
_global.kettles = this.kettles;
trace('assigned during loop: kettles in = ' + _global.kettles);
trace('pots = ' + kettles);
_global.pots = this.pots;
trace('during: pots = ' + _global.pots);
} else {
trace("Error");
}
}
my_lv.load("cookware.txt");
trace('after: kettles (global) = ' + _global.kettles);
trace('after: pots (global) = ' + _global.pots);
Выход ::
Иногда это так:
variables not assigned
before: kettles (global) = undefined
before: pots (global) = undefined
after: kettles (global) = undefined
after: pots (global) = undefined
variables clearly loaded: kettles = undefined
assigned during loop: kettles in = 43
pots = 43
during: pots = 43
и иногда это так:
variables not assigned
before: kettles (global) = 43
before: pots (global) = 44
after: kettles (global) = 43
after: pots (global) = 44
variables clearly loaded: kettles = 43
assigned during loop: kettles in = 43
pots = 43
during: pots = 43
Опять же, переменные не определены или нет, кажется совершенно случайным. Что здесь происходит?