I got in the habit of having a single static event dispatcher that any class can use to listen for/dispatch events.
So for a purchase event handler in a popup, do something like:
App.globalDispatcher.addEventListener(IAPEvent.PurchaseSuccessful, myPurchaseSuccessHandlerInMyPopup);
and then when the purchase is successful:
App.globalDispatcher.dispatchEvent(new PurchaseEvent(IAPEvent.PurchaseSuccessful, purchaseData));
As long as you remember to remove the event listeners when they're no longer needed, you shouldn't have any problems