Javascriptのforループ内でsetTimeout()関数を実行しようとしていますが、定義されていても「shape is undefined」というエラーが発生し、それを関数内のパラメーターとして渡します。 setTimeout()呼び出し。setTimeoutエンクロージャーを削除すると、この関数は正常に機能します。
なぜこのエラーが発生するのですか?どうすれば修正できますか?
ありがとう!
function fadeShapes(layer, movement, opacity, speed) {
var shapes = layer.getChildren();
for(var n = 0; n < shapes.length; n++) {
var shape = layer.getChildren()[n];
setTimeout(function(shape){
shape.transitionTo({
alpha: opacity,
duration: speed
});
}, 100);
}
}