Эквивалент descriptionType для компонентов Flex СОБЫТИЯ - PullRequest
0 голосов
/ 11 июня 2010

Использование «самоанализа» В Flex я могу сказать:

  var classInfo:XML=describeType(SomeObject);

Что перечислит мне методы доступа, методы и переменные. (http://livedocs.adobe.com/flex/3/html/help.html?content=usingas_8.html)

Но что эквивалентно программной проверке всех возможных СОБЫТИЙ объекта?

(НЕ ТОЛЬКО события, для которых были установлены прослушиватели событий, но чтобы каким-то образом пройти список всех ДЕЙСТВИТЕЛЬНЫХ СОБЫТИЙ, для которых можно ПОТЕНЦИАЛЬНО установить прослушиватели событий - я понимаю, что такие списки легко доступны в Интернете, и это здорово для случаев, когда я знаю тип объекта по типу конструкции, но мне требуется какой-то способ программно проверить любой данный экранный объект во время выполнения и определить, какие события, если таковые имеются, связаны или могут быть связаны с ним.)

1 Ответ

2 голосов
/ 11 июня 2010

Нет способа.

Информация о событии, определенная с помощью тега метаданных события, делается только для целей подсказки кода и документирования через ASDocs.Это не имеет отношения к событиям, которые компонент может запускать или не запускать.

В любой момент времени часть кода может вызвать dispatchEvent и отправить это событие.Это очень часто используется для событий "somePropertyChanged", которые используются для привязок.Эти события редко, если вообще когда-либо, документируются с использованием метаданных события.Но компонент все еще их запускает.

Пузырьки путают проблему;потому что, если дочерний компонент запускает событие, где свойство bubble имеет значение true;тогда он почти такой же, как этот компонент, запускающий событие.Как программно вы могли бы понять это без какого-либо анализатора кода?

При этом существует аргумент компилятора для сохранения метаданных (keep-as3-metadata на http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_14.html и http://jacwright.com/blog/72/using-your-own-custom-metadata-in-as3/).

Я полагаю, что если вы это сделаете, то есть способ получить метаданные события из компонента;Я думал, используя descriptionType.Но помните, что метаданные - это не вся история с точки зрения событий.

...