Записки о Flash

Archive for August, 2008

getDefinitionNames

У класса ApplicationDomain есть замечательный метод getDefinitionByName, возвращающий нам класс нужного объекта или функцию. Но нет метода getDefinitionNames, возвращающий имена всех классов, находящихся в данном домене (или загруженном swf). Моя функция getDefinitionNames призвана устранить данный недостаток. Для получения имен классов необходимо передать объект LoaderInfo или ByteArray, содержащий корректный swf.

Исходники

Версия 2.1 от 09.03.10:

  • Теперь в обычный режим поиска возвращает только классы (ранее были ещё и интерфейсы).
  • Появилась поддержка Flash 10 (наконец-то :) ) и типа данных Vector. В расширенном режиме поиска классы типа Vector. (где X — имя класса) также будут перечислены.
  • Версия 2.0 от 16.09.09:

  • Новый режим extended, работающий по другому алгоритму (чуть-чуть медленнее обычного поиска). В этом режиме вы получите не только список классов и интерфейсов, а все доступные definitions, т. е. функции, пространства имен, константы, переменные и т. п.
  • Также появился режим onlyLinked (в этом случае не работает extended), при котором вы получите список только тех классов, которые указаны в качестве linkage в библиотеке swf. В том числе те, которые создаются при использовании метатега [Embed]. Такой режим существенно быстрее обычного и расширенного поиска и рекомендуется в тех случаях, когда вы загружаете библиотеку графических и звуковых ресурсов и вам нужен список только самих ресурсов.
  • Эта версия полностью совместима с предыдущими, при обновлении вам потребуется всего лишь обновить код getDefinitionNames
  • Версия 1.1.1 от 16.09.09:

  • Ещё раз исправлена ошибка поиска классов :)
  • Версия 1.1 от 13.09.09:

  • Исправлена ошибка, в результате которой второй и последующие кадры swf, содержащие код, не распознавались
  • В качестве аргумента в функцию можно передавать как LoaderInfo (как было в предыдущей версии), так и ByteArray, содержащий корректный swf
  • P. S.: Решение для тех, кто хочет знать о подгруженном swf больше.

    20 comments

    Unity3D

    Они захватят мир! 3 мегабайта плеера и море фич!
    Unity3D Demo

    Unity3D Demo

    /me побежал кодить на C#.

    14 comments