次のコードは、ループ内の最後のウィジェットのみをすべてのリスナー関数に追加します。すべての関数は、最後のオブジェクトでtoggleShow()を呼び出します。
なぜこれが発生するのですか?また、各Widgetオブジェクトを対応する関数で参照する方法はありますか?
for each (var w:Widget in workspace.getWidgetList()) {
var widgetShow:NativeMenuItem = menu.addItem(new NativeMenuItem("Show " + w.title));
widgetShow.addEventListener(Event.SELECT, function():void {
w.toggleShow();
});
}