2010-04-16 1 views
0

Я сейчас работаю над интерфейсом Flex и использую фреймворк Parsley для передачи сообщений/событий вокруг.Как определить, какой класс вызвал функцию

Мне было интересно, существует ли простой способ для функции (в данном случае, конструктор события) получить ссылку на объект, который ее назвал?

Это должно гарантировать, что определенное событие, которое я определяю, может быть отправлено только одним указанным классом. Мое мышление состоит в том, чтобы как-то проверить вызывающего конструктора, и выбросить ошибку, если она не соответствует правильному типу.

Я открыт для предложений об альтернативных подходах здесь, но в идеале я хотел бы придерживаться подхода Parsley 'MessageHandler', если это вообще возможно.

Спасибо за чтение парней ..

ответ

1

Трассировка стека работает, но вы можете гораздо легче передать ссылку на вызывающего абонента функции и тип проверить его.

function dispatchEvent(caller:*):void { 
    if(caller is SpecificClass) { 
     // then dispatch event 
    } 
} 
+0

Я также не знаком с Parsley btw. – squinlan

+0

Спасибо. Да, я думал об этом, но я искал что-то более «родное», я думаю. Я могу просто пойти с чем-то вроде этого. – DannyC

0

Отказ от ответственности: Я не знаком с петрушкой.

См. stack trace in actionscript 3. Вы можете получить функцию вызывающего абонента из трассировки стека.

Есть только одна вещь. Трассировка стека может быть обнаружена только в режиме отладки, и, насколько мне известно, нет способа получить вызывающего абонента в режиме «производства».

+0

Это отличная ссылка, спасибо. – DannyC