Существует ли способ получить список представленных функций от объекта Flash? Например, Вы могли получить список всех методов в объекте путем выполнения:
for (var i in object) {
if (typeof object[i] == "function") {
console.log(i);
}
}
Единственная проблема - то, что это не представит методов, зарегистрированных через ExternalInterfaces API. Я могу попытаться видеть, существует ли функция (object['method']
) и это говорит мне, что это - функция, но я должен был бы предположить каждый существующий метод этим способом.
Примечание: Очевидно, у меня нет доступа к actionscript.
Мой инстинкт - нет, ExternalInterface - это, по сути, черный ящик или черный почтовый ящик, вы протыкаете что-то и иногда что-то возвращается, но вы не можете открыть дверь, чтобы посмотреть, что внутри.
Без документации относительно того, что было показано в SWF, единственное другое предложение - декомпилировать swf, чтобы посмотреть на исходный код.
Проблема еще хуже: информация недоступна в ActionScript. Вы регистрируете новую функцию как ExternalInterface.addCallback ('foo', foo)
и не можете перечислить уже зарегистрированные обратные вызовы.
Просто предположение, но посмотрим, работает ли это. Все функции ExternalInterface должны быть определены в глобальном пространстве имен. Попробуйте встроить SWF в страницу HTML и получить все функции Javascript, определенные для страницы, после ее загрузки. Список глобальных пользовательских функций в JavaScript?
Список функций должен соответствовать тем, которые определены в SWF-файле.
Думаю, единственный выход - проанализировать байт-код SWF-файла и попытаться собрать вызовы метода ExternalInterface.addCallback
.