これは本当に私を混乱させます。ディスパッチする前にとプロパティをIndexChangedEvent
設定して、自分で作成した をディスパッチしています。イベントが適切なハンドラーで受信されると、送信前に正しい値であることを( を使用して) 確認したにもかかわらず、との値が -1 として受信されます。oldIndex
newIndex
oldIndex
newIndex
Alert.show()
私は次のように作成しています:
var myEvent:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.HEADER_SHIFT, false, false, null, 3, 2);
パラメータは、3,2
私がデバッグに使用しているものにすぎず、IndexChangedEvent のプロパティoldIndex
とプロパティを設定する必要があります (実際に設定されていることを確認しました)。newIndex
次に、次のようにすぐにイベントをディスパッチします。
dispatchEvent(myEvent);
ハンドラーは次のように設定されます。
report.addEventListener(IndexChangedEvent.HEADER_SHIFT, shiftHandler);
そして、ここにハンドラーコードがあります:
private function shiftHandler(event:IndexChangedEvent):void {
if (event.oldIndex == -1 || event.newIndex == -1) {
Alert.show("-1 index received");
}
}
私が狂っていないことを確認するために、これはイベントをディスパッチする前の実際のコードです。
var myEvent:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.HEADER_SHIFT, false, false, null, 3, 2);
Alert.show(myEvent.oldIndex + " : " + myEvent.newIndex);
dispatchEvent(myEvent);
ヘッダー (イベントを発生させる) をシフトするたびに、2 つのアラート ボックスが3 : 2
表示されます-1 index received
。それは私を夢中にさせています。イベントのプロパティがディスパッチ全体で保持されない理由を誰かに教えてもらえますか?