[AS]progression コマンドの順番についてのメモ
ちょっと混乱したので現象をメモしておこう。
まずはソースを、
indexSceneの_onInitに書いてます。
protected override function _onInit():void {
// 実行したいコマンドを登録する
var sList0:SerialList = new SerialList();
sList0.addCommand(
function() {
trace("sList0");
}
);
var sList1:SerialList = new SerialList();
sList1.addCommand(
function() {
trace("sList1");
}
);
var sList2:SerialList = new SerialList();
sList2.addCommand(
function() {
trace("sList2");
}
);
var sList3:SerialList = new SerialList();
sList3.addCommand(
function() {
trace("sList3");
}
);
var sList4:SerialList = new SerialList();
sList4.addCommand(
function() {
trace("sList4");
}
);
var sList5:SerialList = new SerialList();
sList5.addCommand(
function() {
trace("sList5");
}
);
//
addCommand(
function() {
trace("defolt addCommand Start");
},
addCommand(sList0),
function() {
insertCommand(sList2);
},
addCommand(sList1),
function() {
trace("defolt addCommand End");
},
insertCommand(sList4)
);
//
insertCommand(sList5);
insertCommand(sList3);
}
で、traceされる結果は、
sList3
sList5
sList4
sList0
sList1
defolt addCommand Start
sList2
defolt addCommand End
こんな順番。
気づいた点は、
_onInit()内に、insertCommand()をいくらでも書けるってこと。
そのinsertCommandはexecute()不要で、順番的には、addCommandよりも先になる。
さらに一番最後にinsertCommandしたものが実質一番最初(addCommandよりも先)に実行される、みたいね。
では、addCommand内でinsertCommandした場合はどうなるか。
これは少し注意が必要ね。
直接、insertCommandした場合は、addCommand内で一番最初に実行される。
でもfunction内でinsertCommandした場合は、既存のaddCommandの順番内に純粋に挿入される感じ。
Tweet