Come determinare quale classe ha chiamato una funzione
-
27-09-2019 - |
Domanda
Sto lavorando su un end Flex fronte in questo momento, e sono state usando il Prezzemolo quadro per il passaggio di messaggi / eventi intorno.
mi chiedevo se esiste un modo semplice per una funzione (in questo caso, il costruttore di eventi) per ottenere un riferimento all'oggetto che ha chiamato?
Questo è quello di garantire che un certo evento che mi sto definendo possono essere spediti solo da una classe specificata. Il mio pensiero è quello di verificare il chiamante del costruttore in qualche modo, e genera un errore se non è del tipo corretto.
Sono aperto a suggerimenti di approcci alternativi qui, ma vorrei idealmente come a bastone per utilizzando l'approccio Prezzemolo 'messageHandler', se possibile.
Grazie per la lettura di ragazzi ..
Soluzione
opere stack trace, ma si potrebbe molto più facilmente passare un riferimento al chiamante alla funzione e il tipo di controllo.
function dispatchEvent(caller:*):void {
if(caller is SpecificClass) {
// then dispatch event
}
}
Altri suggerimenti
. Disclaimer: Non ho familiarità con prezzemolo
in ActionScript 3 . È possibile ottenere la funzione chiamante dalla analisi dello stack.
C'è una cosa però .. L'analisi dello stack può essere rilevato solo in modalità debug e per quanto ne so non c'è modo di ottenere il chiamante in modalità "produzione".