|
|
|||||
Регистрация: Sep 2013
Сообщений: 36
|
получить листинг методов объекта
Собственно, проблема описана в заголовке. Возможно ли в as2 как-то получить список всех методов (функций) объекта ? список всех параметров получаю довольно легко, простым перебором через for ... in ... а вот с методами разобраться не могу.
|
|
|||||
Поэкспериментируйте с недокументированным свойством объекта _listeners
Синтаксис должен быть именно таким. |
|
|||||
чтобы увидеть методы, надо перебирать __proto__ объекта
var obj:MyObj = new MyObj(); _global["ASSetPropFlags"](obj.__proto__, null, 6, 1); for ( var key:String in obj.__proto__ ) { if (typeof (obj[key ]) == "function") { trace( "key : " + key + ", value : " + obj[ key ] ); } } /* key : myMethod, value : [type Function] key : constructor, value : [type Function] */ |
|
|||||
Регистрация: Sep 2013
Сообщений: 36
|
правильно ли я понимаю, что просмотр прототипа выдаст только публичные методы ? или так я увижу все методы ?
|
|
|||||
все методы увидите, в as2 public\private это такая условность на уровне компилятора, в итоговом swf между ними нет различия
и еще: в __proto__ будут только методы, определенные в самом классе объекта, чтобы увидеть унаследованные методы\свойства, надо смотреть __proto__.__proto__ , ну или еще дальше |
|
|||||
Регистрация: Sep 2013
Сообщений: 36
|
спасибо большое. попутный вопрос: можно ли узнать еще какую нибудь более подробную инфу о этих методах ? в идеале чем больше тем лучше (исходники конечно наверное врядли получится), ну хотя бы передаваемые аргументы. хоть что нибудь что сможет помочь понять как они устроены.
|
|
|||||
насколько я понимаю, ничего этого узнать не удастся
да и непонятен смысл затеи в рантайм пытаться понять как устроены методы - в зависимости от результата флешка сама будет решать как их использовать что ли.. |
|
|||||
Регистрация: Sep 2013
Сообщений: 36
|
просто задача - изучить "черный ящик". у меня не было исходников. ну с методами разобрался по-другому: декомпиляция решила вопрос с исходным кодом. Спасибо за ответы.
|
Часовой пояс GMT +4, время: 13:20. |
|
« Предыдущая тема | Следующая тема » |
|
|