私はActionscript2.0で初めていくつかの作業を行っていますが(本当に単純なもので、テキストファイルからコンテンツをプルするだけです)、なぜここでそのような予測できない出力が得られるのか、私は一生理解できません。
このような単純なスクリプトをテストビルドすると、変数が未定義としてリストされる場合と、そうでない場合があります。
これは、cookware.txtからロードされたデータがまだメモリにロードされていないことが原因である可能性がありますが、そうではないようです-ここのActionscript辞書によると、onLoad関数は次の場合にのみ起動しますプログラムの残りの部分にアクセスできるように、データがロードされました。
誰かが光を当てることができますか?または、なぜこれが発生する可能性があるのかわかりますか?
cockware.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
繰り返しますが、変数が未定義であるかどうかは完全にランダムに見えます。ここで何が起こっているのですか?