私は経験豊富なプログラマーですが、Flash/Actionscript を使い始めたばかりです。特定の理由により、Actionscript 3 ではなく 2 を使用する必要があるプロジェクトに取り組んでいます。
以下を実行すると (新しいフラッシュ プロジェクトのフレーム 1 に配置しただけです)、出力は 1 ではなく 3 になります。1にする必要があります。
「ii」変数のスコープがループ間で続くのはなぜですか?
var fs:Array = new Array();
for (var i = 0; i < 3; i++){
var ii = i + 1;
fs[i] = function(){
trace(ii);
}
}
fs[0]();